Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

Select ข้อมูล 1 วันย้อนหลังจาก NOW() ใน MySQL

ดึงข้อมูลย้อนหลัง 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()