ใช้ฟังก์ชัน CONCAT() ร่วมกับฟังก์ชันวันที่/เวลา เพื่อแปลงผลลัพธ์ TIMEDIFF ให้อ่านง่าย
ตัวอย่างการใช้งาน
สร้างตารางเก็บวันที่เริ่มต้นและสิ้นสุด:
mysql> CREATE TABLE convertTimeDifferenceDemo ( Id INT NOT NULL AUTO_INCREMENT, StartDate DATETIME, EndDate DATETIME, PRIMARY KEY(Id) ); Query OK, 0 rows affected (0.68 sec)
เพิ่มข้อมูล:
mysql> INSERT INTO convertTimeDifferenceDemo(StartDate,EndDate) VALUES(DATE_ADD(NOW(), INTERVAL -3 HOUR), DATE_ADD(NOW(), INTERVAL 3 HOUR));
mysql> INSERT INTO convertTimeDifferenceDemo(StartDate,EndDate) VALUES(DATE_ADD(NOW(), INTERVAL -2 HOUR), DATE_ADD(NOW(), INTERVAL 2 HOUR));
mysql> INSERT INTO convertTimeDifferenceDemo(StartDate,EndDate) VALUES('2018-04-05 12:30:35', '2018-05-17 14:30:50');
mysql> INSERT INTO convertTimeDifferenceDemo(StartDate,EndDate) VALUES('2017-10-11 11:20:30', '2017-12-17 15:21:55');
คำสั่งแปลงเป็น วัน ชั่วโมง นาที:
mysql> SELECT CONCAT( FLOOR(HOUR(TIMEDIFF(StartDate,EndDate)) / 24), ' DAYS ', MOD(HOUR(TIMEDIFF(StartDate,EndDate)), 24), ' HOURS ', MINUTE(TIMEDIFF(StartDate,EndDate)), ' MINUTES ' ) AS DESCRIPTION FROM convertTimeDifferenceDemo;
ผลลัพธ์:
+------------------------------+ | DESCRIPTION | +------------------------------+ | 0 DAYS 6 HOURS 0 MINUTES | | 0 DAYS 4 HOURS 0 MINUTES | | 34 DAYS 22 HOURS 59 MINUTES | | 34 DAYS 22 HOURS 59 MINUTES | +------------------------------+ 4 rows in set, 6 warnings (0.04 sec)
หมายเหตุ: คำเตือน (warnings) เกิดจากการใช้ TIMEDIFF ที่อาจคืนค่าลบ หากต้องการค่าบวกเสมอ ให้ใช้ ABS(TIMEDIFF(...)) หรือสลับลำดับ StartDate/EndDate ให้ถูกต้อง