ดึงข้อมูลย้อนหลัง 1 วันจากเวลาปัจจุบัน
ใช้ NOW() - INTERVAL 1 DAY หรือ DATE_SUB(NOW(), INTERVAL 1 DAY) ในเงื่อนไข WHERE
รูปแบบคำสั่ง (Syntax)
SELECT * FROM yourTableName
WHERE yourDateTimeColumn >= NOW() - INTERVAL 1 DAY;
ตัวอย่างการใช้งาน
สร้างตาราง GetRecordsFromNow:
CREATE TABLE GetRecordsFromNow (
YourDateTime DATETIME
);
เพิ่มข้อมูล (สมมติ NOW() = 2018-12-04 22:30:18):
INSERT INTO GetRecordsFromNow VALUES
(DATE_ADD(NOW(), INTERVAL 3 DAY)), -- 2018-12-07 (อนาคต)
(DATE_ADD(NOW(), INTERVAL -1 DAY)), -- 2018-12-03 (1 วันก่อน)
(DATE_ADD(NOW(), INTERVAL -2 DAY)), -- 2018-12-02 (2 วันก่อน)
(DATE_ADD(NOW(), INTERVAL -3 DAY)), -- 2018-12-01 (3 วันก่อน)
(DATE_ADD(NOW(), INTERVAL -1 DAY)); -- 2018-12-03 (1 วันก่อน)
ข้อมูลทั้งหมด:
| YourDateTime |
|---|
| 2018-12-07 22:30:18 |
| 2018-12-03 22:30:31 |
| 2018-12-02 22:30:41 |
| 2018-12-01 22:30:56 |
| 2018-12-03 22:31:04 |
คิวรี่ข้อมูล 1 วันย้อนหลัง (>= 2018-12-03 22:30:18):
SELECT * FROM GetRecordsFromNow
WHERE YourDateTime >= NOW() - INTERVAL 1 DAY;
ผลลัพธ์:
| YourDateTime |
|---|
| 2018-12-07 22:30:18 |
| 2018-12-03 22:30:31 |
| 2018-12-03 22:31:04 |
หมายเหตุ: รวมข้อมูลอนาคต (3 วันข้างหน้า) ด้วย เพราะเงื่อนไขคือ "มากกว่าหรือเท่ากับ 1 วันก่อน" หากต้องการเฉพาะอดีต ให้เพิ่ม AND YourDateTime <= NOW()