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

Tìm kiếm theo ngày trong cột TIMESTAMP MySQL

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