Sử dụng hàm DATE() để trích xuất phần ngày từ cột TIMESTAMP khi tìm kiếm.
Ví dụ
Tạo bảng cột TIMESTAMP:
mysql> create table DemoTable (
StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentAdmissionDate timestamp
);
Query OK, 0 rows affected (0.63 sec)Chèn 5 bản ghi:
+-----------+----------------------+ | StudentId | StudentAdmissionDate | +-----------+----------------------+ | 1 | 2011-01-12 12:34:43 | | 2 | 2012-10-23 11:32:21 | | 3 | 2001-02-14 05:12:01 | | 4 | 2018-12-31 15:10:04 | | 5 | 2019-04-16 11:04:10 | +-----------+----------------------+
Tìm chính xác ngày
mysql> select *from DemoTable where date(StudentAdmissionDate)='2001-02-14';
+-----------+----------------------+ | StudentId | StudentAdmissionDate | +-----------+----------------------+ | 3 | 2001-02-14 05:12:01 | +-----------+----------------------+
Tìm trong khoảng ngày (khuyên dùng cho hiệu năng)
mysql> select *from DemoTable where StudentAdmissionDate >='2012-01-01' and StudentAdmissionDate < '2019-12-01';
+-----------+----------------------+ | StudentId | StudentAdmissionDate | +-----------+----------------------+ | 2 | 2012-10-23 11:32:21 | | 4 | 2018-12-31 15:10:04 | | 5 | 2019-04-16 11:04:10 | +-----------+----------------------+
Lưu ý hiệu năng: Cách 2 (khoảng ngày) cho phép dùng index trên cột TIMESTAMP. Cách 1 (hàm DATE()) không dùng được index trừ khi có functional index (MySQL 8.0+).