Để 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().