Dùng hàm CURDATE() (trả về ngày hiện tại không giờ) kết hợp DATE() để so sánh chỉ phần ngày của cột DATETIME.
Ví dụ minh họa
Tạo bảng:
mysql> CREATE TABLE DemoTable (DueDate DATE);
Chèn dữ liệu:
mysql> INSERT INTO DemoTable VALUES('2019-06-14');
mysql> INSERT INTO DemoTable VALUES('2019-06-15');
mysql> INSERT INTO DemoTable VALUES('2019-06-16');
mysql> INSERT INTO DemoTable VALUES('2018-01-16');
mysql> INSERT INTO DemoTable VALUES('2018-07-16');
Xem dữ liệu:
mysql> SELECT * FROM DemoTable;
Kết quả
+------------+ | DueDate | +------------+ | 2019-06-14 | | 2019-06-15 | | 2019-06-16 | | 2018-01-16 | | 2018-07-16 | +------------+
Giả sử hôm nay là 2019-06-16, lấy bản ghi hôm nay:
mysql> SELECT * FROM DemoTable WHERE DATE(DueDate) = CURDATE();
Kết quả
+------------+ | DueDate | +------------+ | 2019-06-16 | +------------+
Lưu ý hiệu năng: DATE(DueDate) làm mất index trên DueDate. Tốt hơn: WHERE DueDate >= CURDATE() AND DueDate < CURDATE() + INTERVAL 1 DAY (sử dụng được index).