เพื่อให้เข้าใจ MySQL แปลงเอาต์พุต timediff เป็นรูปแบบวัน ชั่วโมง นาที และวินาที คุณต้องใช้ CONCAT() จาก MySQL
ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้:
mysql> สร้างตาราง convertTimeDifferenceDemo -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> วันที่และเวลาเริ่มต้น, -> วันที่สิ้นสุดวันที่, -> PRIMARY KEY(Id) -> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.68 วินาที)
แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามที่จะแทรกบันทึกมีดังนี้:
mysql> แทรกลงในค่า convertTimeDifferenceDemo(StartDate,EndDate) (date_add(now(),interval -3 hour),date_add(now(),interval 3 hour));Query OK, 1 แถวได้รับผลกระทบ (0.41 วินาที)mysql> แทรกลงในค่า convertTimeDifferenceDemo (StartDate, EndDate) (date_add (ตอนนี้ (), ช่วงเวลา -2 ชั่วโมง), date_add (ตอนนี้ () ช่วงเวลา 2 ชั่วโมง)); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.27 วินาที) mysql> แทรกลงใน convertTimeDifferenceDemo (StartDate,EndDate) ค่า ('2018-04-05 12:30:35','2018-05-17 14:30:50');Query OK, 1 แถวได้รับผลกระทบ (0.14 วินาที)mysql> แทรกลงใน convertTimeDifferenceDemo( StartDate,EndDate) ค่า ('2017-10-11 11:20:30','2017-12-17 15:21:55');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.20 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้:
mysql> เลือก *จาก convertTimeDifferenceDemo;
ต่อไปนี้เป็นผลลัพธ์:
<ก่อนหน้า>+----+---------------------------+------------------- ---+| รหัส | StartDate | EndDate |+----+---------------------+-------------------- -+| 1 | 2019-01-28 20:55:33 | 2019-01-29 02:55:33 || 2 | 2019-01-28 21:57:42 | 2019-01-29 01:57:42 || 3 | 2018-04-05 12:30:35 | 2018-05-17 14:30:50 || 4 | 2017-10-11 11:20:30 | 2017-12-17 15:21:55 |+-----------+---------------------+----------- ----------+4 แถวในชุด (0.00 วินาที)นี่คือการสืบค้นเพื่อให้ได้ผลลัพธ์ timediff ในรูปแบบวัน ชั่วโมง นาที และวินาที:
mysql> เลือก CONCAT( -> FLOOR(HOUR(TIMEDIFF(StartDate,EndDate))) / 24), ' DAYS ', -> MOD(HOUR(TIMEDIFF(StartDate,EndDate))), 24), ' HOURS ', -> MINUTE(TIMEDIFF(StartDate,EndDate)), ' MINUTES ') ตามคำอธิบาย -> จาก convertTimeDifferenceDemo;
ต่อไปนี้เป็นผลลัพธ์:
<ก่อนหน้า>+------------------------------+| คำอธิบาย |+------------------------------+| 0 วัน 6 ชั่วโมง 0 นาที || 0 วัน 4 ชั่วโมง 0 นาที || 34 วัน 22 ชั่วโมง 59 นาที || 34 วัน 22 ชั่วโมง 59 นาที |+------------------------------------+4 แถวในชุด 6 คำเตือน (0.04 วินาที)