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

Kiểm tra datetime có trùng ngày mai trong MySQL với DATEDIFF

Sử dụng DATEDIFF(date1, date2) trả về số ngày chênh lệch. So sánh với 0 để kiểm tra trùng khớp ngày mai.

Tạo bảng và dữ liệu

mysql> CREATE TABLE DemoTable (ShippingDate DATETIME);
Query OK, 0 rows affected (0.90 sec)
mysql> INSERT INTO DemoTable VALUES('2019-07-01'), ('2019-07-02'), ('2019-07-03'), ('2019-07-04');
Query OK, 4 rows affected (0.29 sec)

Truy vấn tìm hàng có ShippingDate = ngày mai

Giả sử hôm nay 2019-07-01, ngày mai 2019-07-02

mysql> SELECT * FROM DemoTable
    -> WHERE DATEDIFF(ShippingDate, DATE_ADD(CURDATE(), INTERVAL 1 DAY)) = 0;

Kết quả:

+---------------------+
| ShippingDate        |
+---------------------+
| 2019-07-02 00:00:00 |
+---------------------+
1 row in set (0.08 sec)

Giải thích:

  • DATE_ADD(CURDATE(), INTERVAL 1 DAY): ngày mai
  • DATEDIFF(ShippingDate, tomorrow) = 0 → cùng ngày
  • DATEDIFF bỏ qua phần giờ, chỉ so sánh ngày

Cách đơn giản hơn: WHERE DATE(ShippingDate) = DATE_ADD(CURDATE(), INTERVAL 1 DAY)