Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Chọn bản ghi từ NOW() - 1 ngày trong MySQL?

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).