datediff() เป็น ฟังก์ชันเกี่ยวกับวันที่ของ mysql ใช้สำหรับหาค่าต่างของวันที่สองวันที่
ตัวอย่าง
1 2 3 4 5 | SELECT DATEDIFF( "2012-01-12" ,NOW()) // วันที่ปัจจุบันคือ 2012-01-11 คือค่า NOW() // ค่าที่ได้จะเท่ากับ 1 ได้จาก วันที่แรก ลบด้วย วันที่ที่สอง // 2012-01-12 ลบ ด้วย 2012-01-11 คือได้ค่าต่างกัน 1 วัน // อธิบายได้ว่า วันที่แรกมากกว่าวันที่ที่สอง 1 วัน |
ตัวอย่างถ้ากำหนดวันที่แรก น้อยกว่าวันที่ที่สอง ค่าที่ได้จะติดลบ
1 2 3 4 5 | SELECT DATEDIFF(NOW(), "2012-01-12" ) // วันที่ปัจจุบันคือ 2012-01-11 คือค่า NOW() // ค่าที่ได้จะเท่ากับ -1 ได้จาก วันที่แรก ลบด้วย วันที่ที่สอง // 2012-01-11 ลบ ด้วย 2012-01-12 คือได้ค่าต่างกัน 1 วัน แต่มีเครื่องหมาย - // (ติดลบกำหนดว่า วันที่แรกน้อยกว่าวันที่ที่สองอยู่ 1 วัน) |
แนวทางการนำไปใช้งาน
การลบรายการที่เลยวันที่กำหนดมาแล้ว 3 วัน
1 2 3 4 | DELETE FROM table WHERE DATEDIFF(date_field,NOW())>=3 // คำสั่งลบรายการที่ วันที่ date_field มากกว่าวันที่ปัจจุบัน ตั้งแต่ 3 วันขึ้นไป // (date_field คือวันที่ที่ใช้ตรวจสอบ มีรูปแบบ 0000-00-00 เช่น 2012-01-05) // การทำงานคือ หลังจาก 3 วันนับจากวันที่กำหนด date_field รายการนั้นๆ ก็จะถูกลบ |
การเลือกรายการที่วันที่ ก่อนครบกำหนด 7 วัน
1 2 3 4 5 | SELECT * FROM table WHERE DATEDIFF(NOW(),date_field)=-7 // คำสั่งเลือกรายการ ที่จะครบกำหนดวันที่ date_field ในอีก 7 วัน // (date_field คือวันที่ที่ใช้ตรวจสอบ มีรูปแบบ 0000-00-00 เช่น 2012-01-05) // ในกรณีนี้ date_field คือวันที่ที่จะครบกำหนด // การทำงานคือ ถ้าอีก 7 วันนับจากวันนี้ จนถึงวันที่ครบกำหนด date_field รายการก็จะถูกนำมาแสดง |