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

Tính số ngày giữa 2 cột DATE trên cùng một hàng trong MySQL

Để tính khoảng cách ngày giữa hai cột DATE (hoặc DATETIME) trên cùng một hàng — ví dụ: ngày vào làm và ngày nghỉ việc, ngày đặt hàng và ngày giao — MySQL dùng hàm DATEDIFF(date1, date2) trả về date1 - date2 (số ngày, có thể âm).

Ví dụ minh họa

Tạo bảng nhân viên (ngày vào làm, ngày nghỉ):

mysql> CREATE TABLE DemoTable1471 (
    EmployeeJoiningDate DATE,
    EmployeeRelievingDate DATE
);

Chèn dữ liệu:

mysql> INSERT INTO DemoTable1471 VALUES ('2018-06-21', '2018-12-21');
mysql> INSERT INTO DemoTable1471 VALUES ('2017-01-19', '2019-01-31');
mysql> INSERT INTO DemoTable1471 VALUES ('2015-12-31', '2016-03-01');

Dữ liệu:

mysql> SELECT * FROM DemoTable1471;
+---------------------+-----------------------+
| EmployeeJoiningDate | EmployeeRelievingDate |
+---------------------+-----------------------+
| 2018-06-21          | 2018-12-21            |
| 2017-01-19          | 2019-01-31            |
| 2015-12-31          | 2016-03-01            |
+---------------------+-----------------------+

Tính số ngày làm việc (Relieving - Joining)

mysql> SELECT DATEDIFF(EmployeeRelievingDate, EmployeeJoiningDate) AS EmployeeWorkDays 
    FROM DemoTable1471;

Kết quả:

+------------------+
| EmployeeWorkDays |
+------------------+
|              183 |
|              742 |
|               61 |
+------------------+

Giải thích

  • Hàng 1: 2018-12-21 - 2018-06-21 = 183 ngày.
  • Hàng 2: 2019-01-31 - 2017-01-19 = 742 ngày (≈ 2 năm).
  • Hàng 3: 2016-03-01 - 2015-12-31 = 61 ngày (tháng 2 năm nhuận 2016 có 29 ngày).

Các hàm liên quan

HàmTrả vềVí dụ
DATEDIFF(d1, d2)Số ngày (d1 - d2), bỏ qua giờDATEDIFF('2024-01-02', '2024-01-01') = 1
TIMESTAMPDIFF(DAY, d1, d2)Số ngày (d2 - d1) — thứ tự ngược DATEDIFFTIMESTAMPDIFF(DAY, '2024-01-01', '2024-01-02') = 1
TIMESTAMPDIFF(MONTH, d1, d2)Số tháng tròn giữa 2 ngàyPhức tạp hơn DATEDIFF/30
TIMESTAMPDIFF(YEAR, d1, d2)Số năm tròn (tuổi)TIMESTAMPDIFF(YEAR, '2000-05-15', CURDATE())

Ứng dụng thực tế