Sử dụng phép trừ interval trực tiếp trên NOW() hoặc cột datetime.
Cú pháp:
SELECT * FROM ten_bang WHERE cot_datetime >= NOW() - INTERVAL 1 DAY;
Ví dụ bảng GetRecordsFromNow:
CREATE TABLE GetRecordsFromNow (YourDateTime DATETIME); INSERT INTO GetRecordsFromNow VALUES (DATE_ADD(NOW(), INTERVAL 3 DAY)), (DATE_ADD(NOW(), INTERVAL -1 DAY)), (DATE_ADD(NOW(), INTERVAL -2 DAY)), (DATE_ADD(NOW(), INTERVAL -3 DAY)), (DATE_ADD(NOW(), INTERVAL -1 DAY));
Dữ liệu (giả sử NOW = 2018-12-06 22:30:18):
+---------------------+ | YourDateTime | +---------------------+ | 2018-12-09 22:30:18 | -- +3 ngày | 2018-12-05 22:30:31 | -- -1 ngày | 2018-12-04 22:30:41 | -- -2 ngày | 2018-12-03 22:30:56 | -- -3 ngày | 2018-12-05 22:31:04 | -- -1 ngày +---------------------+
Truy vấn bản ghi trong 1 ngày gần nhất (>= NOW - 1 DAY):
SELECT * FROM GetRecordsFromNow WHERE YourDateTime >= NOW() - INTERVAL 1 DAY;
Kết quả
+---------------------+ | YourDateTime | +---------------------+ | 2018-12-09 22:30:18 | -- tương lai (nếu có) | 2018-12-05 22:30:31 | | 2018-12-05 22:31:04 | +---------------------+
Lưu ý: NOW() bao gồm giờ. Nếu chỉ so sánh ngày, dùng CURDATE() hoặc DATE(cot) >= DATE_SUB(CURDATE(), INTERVAL 1 DAY).