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

Lấy bản ghi có ngày bằng ngày hiện tại trong MySQL

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).