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

Chọn ngày nhỏ hơn ngày hiện tại trong MySQL

So sánh cột DATE/DATETIME với NOW() hoặc CURDATE() để lọc các bản ghi quá hạn hoặc trong quá khứ.

Ví dụ minh họa

Tạo bảng và chèn dữ liệu:

mysql> CREATE TABLE DemoTable1877 (DueDate DATETIME);
mysql> INSERT INTO DemoTable1877 VALUES('2019-12-10'),('2019-12-05'),('2019-12-07'),('2019-12-09');

Giả sử hôm nay 2019-12-08. Lọc ngày < hôm nay:

mysql> SELECT * FROM DemoTable1877 WHERE DueDate < NOW();

Kết quả (2019-12-05, 2019-12-07):

+---------------------+
| DueDate             |
+---------------------+
| 2019-12-05 00:00:00 |
| 2019-12-07 00:00:00 |
+---------------------+

Lưu ý: NOW() trả về DATETIME, so sánh với DATE sẽ chuyển DATE thành 00:00:00. Dùng CURDATE() cho so sánh thuần ngày. Index trên cột DueDate sẽ được sử dụng nếu không bọc trong hàm.