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

So sánh cột DateTime chỉ với Date (bỏ qua giờ) trong MySQL

Để so sánh cột kiểu DATETIME chỉ với phần ngày (bỏ qua giờ), sử dụng hàm DATE().

Cú pháp

SELECT * FROM tenBang WHERE DATE(tenCotDateTime) = 'yyyy-mm-dd';

Ví dụ thực hành

Tạo bảng và chèn dữ liệu:

mysql> create table DemoTable ( 
    ArrivalTime datetime 
); 
Query OK, 0 rows affected (0.74 sec)
mysql> insert into DemoTable values('2019-01-31 02:34:56'); 
Query OK, 1 row affected (0.20 sec) 
mysql> insert into DemoTable values('2019-04-09 18:20:58'); 
Query OK, 1 row affected (0.13 sec) 
mysql> insert into DemoTable values('2019-05-11 19:45:23'); 
Query OK, 1 row affected (0.13 sec) 
mysql> insert into DemoTable values('2019-02-03 21:10:02'); 
Query OK, 1 row affected (0.16 sec)

Dữ liệu gốc:

+---------------------+
| ArrivalTime         |
+---------------------+
| 2019-01-31 02:34:56 |
| 2019-04-09 18:20:58 |
| 2019-05-11 19:45:23 |
| 2019-02-03 21:10:02 |
+---------------------+
4 rows in set (0.00 sec)

Truy vấn so sánh chỉ ngày

mysql> select *from DemoTable where Date(ArrivalTime)='2019-04-09';
+---------------------+
| ArrivalTime         |
+---------------------+
| 2019-04-09 18:20:58 |
+---------------------+
1 row in set (0.00 sec)

Mẹo hiệu năng: Với bảng lớn, hãy cân nhắc dùng phạm vi ngày thay vì hàm DATE() trên cột để tận dụng index:

WHERE ArrivalTime >= '2019-04-09' AND ArrivalTime < '2019-04-10'