Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีข้ามค่าลบจากฟังก์ชัน DATEDIFF() ใน MySQL

DATEDIFF() คืนค่าความต่างจำนวนวันระหว่าง 2 วันที่ อาจเป็นค่าลบได้ หากต้องการค่าสัมบูรณ์ ใช้ ABS():

mysql> SELECT * FROM differ;
+------------+-------------+
| OrderDate  | WorkingDate |
+------------+-------------+
| 2017-10-22 | 2017-10-29  |
| 2017-10-25 | 2017-10-30  |
| 2017-10-25 | 2017-11-30  |
+------------+-------------+

mysql> SELECT DATEDIFF(OrderDate, WorkingDate) AS 'DIFFERENCE IN DAYS' FROM differ;
+--------------------+
| DIFFERENCE IN DAYS |
+--------------------+
| -7                 |
| -5                 |
| -36                |
+--------------------+

ใช้ ABS() หุ้มเพื่อให้ได้ค่าบวก:

mysql> SELECT ABS(DATEDIFF(OrderDate, WorkingDate)) AS 'DIFFERENCE IN DAYS' FROM differ;
+--------------------+
| DIFFERENCE IN DAYS |
+--------------------+
| 7                  |
| 5                  |
| 36                 |
+--------------------+

ตอนนี้ได้ค่าความต่างเป็นบวกหมดแล้ว