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

แปลงค่า TIME ใน MySQL ให้เป็นรูปแบบวันและชั่วโมง

บทความนี้สาธิตวิธีแปลงค่าเวลาในรูปแบบ TIME (เช่น 150:50:10) ให้เป็นรูปแบบ "วัน ชั่วโมง" (เช่น 6 วัน 6 ชั่วโมง) โดยใช้ฟังก์ชัน HOUR(), FLOOR(), MOD() และ CONCAT()

สร้างตารางและข้อมูลทดสอบ

mysql> CREATE TABLE DemoTable657 (DueTime TIME);
Query OK, 0 rows affected (3.68 sec)

mysql> INSERT INTO DemoTable657 VALUES('120:30:00');
mysql> INSERT INTO DemoTable657 VALUES('150:50:10');

ข้อมูลในตาราง

+-----------+
| DueTime   |
+-----------+
| 120:30:00 |
| 150:50:10 |
+-----------+

คิวรีแปลง TIME เป็น วันและชั่วโมง

mysql> SELECT CONCAT(
    FLOOR(HOUR(DueTime)/24), ' DAYS, ',
    HOUR(DueTime) MOD 24, ' HOURS.'
) FROM DemoTable657;

ผลลัพธ์

+-----------------------------------------------------------------------------+
| CONCAT( FLOOR(HOUR(DueTime)/24), ' DAYS, ', HOUR(DueTime) MOD 24, ' HOURS.') |
+-----------------------------------------------------------------------------+
| 5 DAYS, 0 HOURS.                                                            |
| 6 DAYS, 6 HOURS.                                                            |
+-----------------------------------------------------------------------------+

คำอธิบาย:

  • HOUR(DueTime) - ดึงจำนวนชั่วโมงทั้งหมดจากค่า TIME
  • FLOOR(HOUR(DueTime)/24) - คำนวณจำนวนวันเต็ม
  • HOUR(DueTime) MOD 24 - คำนวณชั่วโมงที่เหลือหลังหารด้วย 24
  • CONCAT() - รวมข้อความเป็นรูปแบบที่อ่านง่าย