การเตรียมข้อมูล
mysql> CREATE TABLE DemoTable1845 (
ArrivalDate DATE
);
mysql> INSERT INTO DemoTable1845 VALUES('2019-12-02');
mysql> INSERT INTO DemoTable1845 VALUES('2019-11-18');
mysql> INSERT INTO DemoTable1845 VALUES('2019-12-18');
mysql> INSERT INTO DemoTable1845 VALUES('2019-12-25');
mysql> INSERT INTO DemoTable1845 VALUES('2019-11-15');
วันที่ปัจจุบัน
mysql> SELECT NOW();
+---------------------+
| now() |
+---------------------+
| 2019-12-02 20:47:05 |
+---------------------+
Query ข้อมูล 15 วันย้อนหลัง
mysql> SELECT * FROM DemoTable1845
WHERE ArrivalDate < DATE_SUB(NOW(), INTERVAL 15 DAY);
ผลลัพธ์ (เฉพาะ 2019-11-15 ที่เก่ากว่า 15 วันจาก 2019-12-02):
+-------------+
| ArrivalDate |
+-------------+
| 2019-11-15 |
+-------------+
ฟังก์ชันวันที่ที่เกี่ยวข้อง
| ฟังก์ชัน | คำอธิบาย |
|---|---|
| DATE_SUB(date, INTERVAL expr unit) | ลบช่วงเวลาจากวันที่ |
| DATE_ADD(date, INTERVAL expr unit) | บวกช่วงเวลาให้วันที่ |
| NOW() | วันที่และเวลาปัจจุบัน |
| CURDATE() | วันที่ปัจจุบัน (ไม่รวมเวลา) |
หน่วยเวลา (Unit) ที่ใช้ได้
SECOND,MINUTE,HOURDAY,WEEK,MONTH,QUARTER,YEARMICROSECOND
ตัวอย่างเพิ่มเติม
-- 30 วันที่แล้ว
WHERE ArrivalDate < DATE_SUB(CURDATE(), INTERVAL 30 DAY)
-- 3 เดือนที่แล้ว
WHERE ArrivalDate < DATE_SUB(NOW(), INTERVAL 3 MONTH)
-- 1 ปีข้างหน้า
WHERE ArrivalDate > DATE_ADD(NOW(), INTERVAL 1 YEAR)