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

Hiển thị Timestamp trước ngày hiện tại trong MySQL

Để lọc các bản ghi có timestamp (ngày giờ) nhỏ hơn thời điểm hiện tại, bạn sử dụng hàm NOW() trong mệnh đề WHERE.

Ví dụ minh họa

Tạo bảng:

mysql> create table DemoTable( 
    ArrivalDate timestamp 
);

Chèn dữ liệu:

mysql> insert into DemoTable values('2019-09-14 17:25:00');
mysql> insert into DemoTable values('2019-09-13 17:25:00');
mysql> insert into DemoTable values('2016-09-01 17:20:10');
mysql> insert into DemoTable values('2019-09-11 12:00:00');

Hiển thị dữ liệu:

mysql> select * from DemoTable;

Kết quả:

+---------------------+
| ArrivalDate         |
+---------------------+
| 2019-09-14 17:25:00 |
| 2019-09-13 17:25:00 |
| 2016-09-01 17:20:10 |
| 2019-09-11 12:00:00 |
+---------------------+

Truy vấn lọc ngày trước NOW()

mysql> select * from DemoTable where ArrivalDate < now();

Kết quả (giả sử NOW() = 2019-09-14 18:00:00):

+---------------------+
| ArrivalDate         |
+---------------------+
| 2019-09-13 17:25:00 |
| 2016-09-01 17:20:10 |
| 2019-09-11 12:00:00 |
+---------------------+

Giải thích:

  • NOW(): Trả về ngày giờ hiện tại của server (datetime)
  • ArrivalDate < NOW(): So sánh datetime, lấy các bản ghi ở quá khứ
  • Bản ghi '2019-09-14 17:25:00' bị loại vì ở tương lai so với NOW() giả định

Lưu ý: NOW() trả về cùng giá trị trong toàn bộ truy vấn. Nếu cần so sánh chỉ ngày (bỏ qua giờ), dùng DATE(ArrivalDate) < CURDATE().