สามวิธีให้ผลลัพธ์เท่ากัน
1. DATE_ADD กับ INTERVAL ลบ
SELECT DATE_ADD(CURDATE(), INTERVAL -6 DAY);
2. DATE_SUB (อ่านง่ายกว่า)
SELECT DATE_SUB(CURDATE(), INTERVAL 6 DAY);
3. ลบโดยตรง
SELECT CURDATE() - INTERVAL 6 DAY;
ตัวอย่างผลลัพธ์ (สมมติวันนี้ 2018-11-26)
+-------------------------------------+
| date_add(curdate(), interval -6 day) |
+-------------------------------------+
| 2018-11-20 |
+-------------------------------------+
+------------------------------------+
| date_sub(curdate(), interval 6 day) |
+------------------------------------+
| 2018-11-20 |
+------------------------------------+
+--------------------------+
| curdate() - interval 6 day |
+--------------------------+
| 2018-11-20 |
+--------------------------+
ใช้ใน WHERE Clause (Query ย้อนหลัง 7 วัน)
SELECT * FROM orders
WHERE order_date >= DATE_SUB(CURDATE(), INTERVAL 7 DAY);
สรุป
DATE_SUB: อ่านง่ายที่สุด สำหรับการลบ
DATE_ADD กับลบ: ใช้ได้แต่สับสน
- Operator
-: สั้นที่สุด
- ทั้งสาม ใช้กับ
CURDATE() (Date) หรือ NOW() (DateTime) ได้