Dùng hàm DATE(cot_datetime) để trích xuất phần ngày (bỏ giờ), sau đó so sánh với chuỗi ngày.
Cú pháp:
SELECT * FROM ten_bang WHERE DATE(cot_datetime) = 'YYYY-MM-DD';
Ví dụ:
CREATE TABLE DateTimeDemo (ArrivalTime DATETIME); INSERT INTO DateTimeDemo VALUES (NOW()), (DATE_ADD(NOW(), INTERVAL 2 YEAR)), (DATE_ADD(NOW(), INTERVAL 1 YEAR)), (DATE_ADD(NOW(), INTERVAL 4 YEAR)), (DATE_ADD(NOW(), INTERVAL -2 YEAR)), (DATE_ADD(NOW(), INTERVAL -1 YEAR));
Dữ liệu (giả sử NOW = 2018-12-06):
+---------------------+ | ArrivalTime | +---------------------+ | 2018-12-06 10:12:45 | | 2020-12-06 10:13:10 | | 2019-12-06 10:13:21 | | 2022-12-06 10:13:27 | | 2016-12-06 10:13:42 | | 2017-12-06 10:13:50 | +---------------------+
Tìm bản ghi ngày 2022-12-06:
SELECT * FROM DateTimeDemo WHERE DATE(ArrivalTime) = '2022-12-06';
Kết quả
+---------------------+ | ArrivalTime | +---------------------+ | 2022-12-06 10:13:27 | +---------------------+
Hiệu năng: DATE(cot) làm mất index trên cột datetime. Với bảng lớn, nên dùng range:
WHERE cot_datetime >= '2022-12-06 00:00:00' AND cot_datetime < '2022-12-07 00:00:00'
Cách này tận dụng index (SARGable).