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 | +--------------------+
ตอนนี้ได้ค่าความต่างเป็นบวกหมดแล้ว