ไวยากรณ์ดึงข้อมูลเก่ากว่า 1 สัปดาห์
ใช้ NOW() ลบ INTERVAL 1 WEEK:
SELECT * FROM your_table
WHERE date_column < NOW() - INTERVAL 1 WEEK;
ตัวอย่างการใช้งาน
สร้างตารางและเพิ่มข้อมูลหลายช่วงเวลา
CREATE TABLE DatesOfOneWeek (ArrivalTime DATETIME);
INSERT INTO DatesOfOneWeek VALUES
(DATE_ADD(NOW(), INTERVAL 2 WEEK)), -- อนาคต 2 สัปดาห์
('2018-11-04'), -- กว่า 1 เดือน
('2018-11-25'), -- กว่า 2 สัปดาห์
(DATE_ADD(NOW(), INTERVAL -1 WEEK)), -- ก่อน 1 สัปดาห์
(DATE_ADD(NOW(), INTERVAL 1 WEEK)); -- อนาคต 1 สัปดาห์
ข้อมูลทั้งหมด (สมมติ NOW = 2018-12-06)
+---------------------+
| ArrivalTime |
+---------------------+
| 2018-12-20 18:11:02 | -- +2 สัปดาห์
| 2018-11-04 00:00:00 | -- -1 เดือน
| 2018-11-25 00:00:00 | -- -2 สัปดาห์
| 2018-11-29 18:11:40 | -- -1 สัปดาห์
| 2018-12-13 18:11:46 | -- +1 สัปดาห์
+---------------------+
คิวรี่ดึงข้อมูลเก่ากว่า 1 สัปดาห์
SELECT * FROM DatesOfOneWeek
WHERE ArrivalTime < NOW() - INTERVAL 1 WEEK;
ผลลัพธ์ (วันที่ < 2018-11-29)
+---------------------+
| ArrivalTime |
+---------------------+
| 2018-11-04 00:00:00 |
| 2018-11-25 00:00:00 |
| 2018-11-29 18:11:40 |
+---------------------+
รูปแบบ INTERVAL อื่นๆ
INTERVAL 1 DAY
INTERVAL 3 MONTH
INTERVAL 1 YEAR
INTERVAL 6 HOUR
INTERVAL 30 MINUTE
ใช้กับ DATE Column
WHERE date_column < CURDATE() - INTERVAL 1 WEEK
ประสิทธิภาพ: หากคอลัมน์มี Index ให้หลีกเลี่ยง Function ด้านซ้าย (เช่น DATE()) ใช้รูปแบบ column < NOW() - INTERVAL ... แทนเพื่อให้ใช้ Index ได้