Hàm DATEDIFF() trả về số ngày chênh lệch giữa 2 ngày, có thể trả về giá trị âm nếu ngày thứ nhất nhỏ hơn ngày thứ hai.
mysql> SELECT * FROM differ; +------------+-------------+ | OrderDate | WorkingDate | +------------+-------------+ | 2017-10-22 | 2017-10-29 | | 2017-10-25 | 2017-10-30 | | 2017-10-25 | 2017-11-30 | +------------+-------------+ 3 rows in set (0.00 sec) mysql> SELECT DATEDIFF(OrderDate, WorkingDate) AS 'DIFFERENCE IN DAYS' FROM differ; +--------------------+ | DIFFERENCE IN DAYS | +--------------------+ | -7 | | -5 | | -36 | +--------------------+ 3 rows in set (0.00 sec)
Để bỏ qua dấu âm, dùng hàm ABS():
mysql> SELECT ABS(DATEDIFF(OrderDate, WorkingDate)) AS 'DIFFERENCE IN DAYS' FROM differ; +--------------------+ | DIFFERENCE IN DAYS | +--------------------+ | 7 | | 5 | | 36 | +--------------------+ 3 rows in set (0.00 sec)
ABS() trả về giá trị tuyệt đối, loại bỏ dấu âm.