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

Lấy bản ghi có timestamp sau X phút trong MySQL

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 YEAR
  • INTERVAL '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.