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

Truy vấn MySQL lấy ngày hiện tại từ danh sách ngày

Giả sử ngày hiện tại là 2019-07-22.

Tạo bảng demo

mysql> create table DemoTable705 (ShippingDate datetime);
Query OK, 0 rows affected (0.67 sec)

Chèn dữ liệu

mysql> insert into DemoTable705 values('2019-01-21 23:59:00');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable705 values('2019-07-22 00:00:30');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable705 values('2019-07-21 12:01:30');
Query OK, 1 row affected (0.44 sec)

Hiển thị dữ liệu

mysql> select * from DemoTable705;

Kết quả

+---------------------+
| ShippingDate        |
+---------------------+
| 2019-01-21 23:59:00 |
| 2019-07-22 00:00:30 |
| 2019-07-21 12:01:30 |
+---------------------+
3 rows in set (0.00 sec)

Truy vấn lấy bản ghi ngày hôm nay (CURDATE())

mysql> select * from DemoTable705 where DATE(ShippingDate) = CURDATE();

Kết quả - Chỉ bản ghi 2019-07-22

+---------------------+
| ShippingDate        |
+---------------------+
| 2019-07-22 00:00:30 |
+---------------------+
1 row in set (0.00 sec)

Giải thích:

  • CURDATE(): Trả về ngày hiện tại (DATE), tương đương DATE(NOW()) nhưng ngắn gọn hơn.
  • DATE(ShippingDate): Trích xuất ngày từ datetime.
  • So sánh DATE(cot) = CURDATE() khớp toàn bộ ngày bất kể giờ.

Các hàm ngày liên quan:

  • CURDATE() / CURRENT_DATE(): Ngày hôm nay.
  • CURTIME() / CURRENT_TIME(): Giờ hiện tại.
  • NOW() / CURRENT_TIMESTAMP(): Ngày giờ hiện tại.
  • UTC_DATE(), UTC_TIME(), UTC_TIMESTAMP(): Theo múi giờ UTC.

Tối ưu index: WHERE ShippingDate >= CURDATE() AND ShippingDate < CURDATE() + INTERVAL 1 DAY.