Sử dụng DATE_SUB(NOW(), INTERVAL n MINUTE) để tính thời điểm n phút trước, so sánh với cột datetime.
Ví dụ minh họa
Tạo bảng:
mysql> CREATE TABLE DemoTable1335 (ArrivalTime DATETIME);
Chèn dữ liệu (cùng ngày, giờ khác nhau):
mysql> INSERT INTO DemoTable1335 VALUES('2019-09-19 22:54:00'), ('2019-09-19 22:59:00'), ('2019-09-19 22:56:00'), ('2019-09-19 22:52:00');
Xem dữ liệu & thời gian hiện tại:
mysql> SELECT * FROM DemoTable1335; mysql> SELECT NOW(); -- 2019-09-19 22:55:53
Lấy bản ghi sau 2 phút trước (tức > 22:53:53):
mysql> SELECT * FROM DemoTable1335 WHERE ArrivalTime > DATE_SUB(NOW(), INTERVAL 2 MINUTE);
Kết quả (22:56 và 22:59):
+---------------------+ | ArrivalTime | +---------------------+ | 2019-09-19 22:59:00 | | 2019-09-19 22:56:00 | +---------------------+
Các biến thể INTERVAL:
INTERVAL 1 HOUR,INTERVAL 1 DAY,INTERVAL 1 WEEK,INTERVAL 1 MONTH,INTERVAL 1 YEARINTERVAL '1:30' HOUR_MINUTE(1 giờ 30 phút)- Kết hợp:
DATE_SUB(NOW(), INTERVAL 1 DAY) + INTERVAL 2 HOUR
Lưu ý: NOW() trả về datetime, CURDATE() chỉ date. Cột DATETIME so sánh với NOW() chính xác hơn.