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

Tính khoảng cách ngày giữa ngày hiện tại và cột DATE trong MySQL

Hàm DATEDIFF(date1, date2) trong MySQL trả về số ngày chênh lệch giữa hai ngày (date1 - date2). Kết quả dương nếu date1 sau date2, âm nếu trước, 0 nếu trùng ngày. Thường dùng để tính tuổi, ngày quá hạn, thời gian tồn kho, v.v.

Ví dụ minh họa

Tạo bảng ngày đáo hạn:

mysql> CREATE TABLE DemoTable1446 (
    DueDate DATE
);

Chèn dữ liệu:

mysql> INSERT INTO DemoTable1446 VALUES ('2019-01-21');
mysql> INSERT INTO DemoTable1446 VALUES ('2019-02-01');
mysql> INSERT INTO DemoTable1446 VALUES ('2019-09-30');

Dữ liệu:

mysql> SELECT * FROM DemoTable1446;
+------------+
| DueDate    |
+------------+
| 2019-01-21 |
| 2019-02-01 |
| 2019-09-30 |
+------------+

Ngày hiện tại:

mysql> SELECT CURDATE();
+------------+
| curdate()  |
+------------+
| 2019-10-01 |
+------------+

Tính chênh lệch ngày (CURDATE - DueDate)

mysql> SELECT DATEDIFF(CURDATE(), DueDate) 
    FROM DemoTable1446;

Kết quả:

+-----------------------------+
| datediff(curdate(),DueDate) |
+-----------------------------+
|                         253 |
|                         242 |
|                           1 |
+-----------------------------+

Giải thích kết quả

  • 2019-10-01 - 2019-01-21 = 253 ngày
  • 2019-10-01 - 2019-02-01 = 242 ngày
  • 2019-10-01 - 2019-09-30 = 1 ngày

Các hàm liên quan về khoảng cách thời gian

HàmMô tảVí dụ
DATEDIFF(d1, d2)Số ngày (d1 - d2), bỏ qua phần giờDATEDIFF('2024-01-02', '2024-01-01') = 1
TIMESTAMPDIFF(unit, d1, d2)Khoảng cách theo đơn vị (DAY, MONTH, YEAR, HOUR...)TIMESTAMPDIFF(DAY, '2024-01-01', '2024-01-02') = 1
TIMEDIFF(t1, t2)Khoảng cách TIME/DATETIME (giờ:phút:giây)TIMEDIFF('12:00', '10:30') = '01:30:00'

Ứng dụng thực tế