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

Cách bỏ qua giá trị âm trả về bởi hàm DATEDIFF() trong MySQL

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.