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

แปลง VARCHAR 'time' ให้เป็นเวลาจริงใน MySQL ด้วย TIME_FORMAT

เมื่อเก็บเวลาในรูปแบบ VARCHAR เช่น '1620' (หมายถึง 16:20) สามารถแปลงเป็นรูปแบบเวลาจริง (TIME) ได้โดยใช้ฟังก์ชัน TIME_FORMAT() ร่วมกับ CONCAT() และ SUBSTRING()

ตัวอย่างการใช้งาน

1. สร้างตารางและเพิ่มข้อมูล

mysql> create table DemoTable1591 ( ArrivalTime varchar(20) ); Query OK, 0 rows affected (0.58 sec)

mysql> insert into DemoTable1591 values('1620'); Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable1591 values('2345'); Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable1591 values('2210'); Query OK, 1 row affected (0.12 sec)

ข้อมูลต้นฉบับ (VARCHAR):

mysql> select * from DemoTable1591;
+-------------+
| ArrivalTime |
+-------------+
| 1620        |
| 2345        |
| 2210        |
+-------------+
3 rows in set (0.00 sec)

2. แปลงเป็นรูปแบบเวลา HH:MM

mysql> select TIME_FORMAT(CONCAT(SUBSTRING(ArrivalTime, 1,2), ':', SUBSTRING(ArrivalTime, 3,4)), '%h:%i') from DemoTable1591;

ผลลัพธ์:

+---------------------------------------------------------------------------------------------+
| TIME_FORMAT(CONCAT(SUBSTRING(ArrivalTime, 1,2), ':', SUBSTRING(ArrivalTime, 3,4)), '%h:%i') |
+---------------------------------------------------------------------------------------------+
| 04:20                                                                                       |
| 11:45                                                                                       |
| 10:10                                                                                       |
+---------------------------------------------------------------------------------------------+
3 rows in set (0.00 sec)

อธิบายการทำงาน

  1. SUBSTRING(ArrivalTime, 1,2) - ดึงตัวอักษร 2 ตัวแรก (ชั่วโมง): '16', '23', '22'
  2. SUBSTRING(ArrivalTime, 3,4) - ดึงตัวอักษร ตำแหน่งที่ 3-4 (นาที): '20', '45', '10'
  3. CONCAT(..., ':', ...) - รวมสตริงเป็น '16:20', '23:45', '22:10'
  4. TIME_FORMAT(..., '%h:%i') - จัดรูปแบบเวลา 12 ชั่วโมง (%h = ชั่วโมง 01-12, %i = นาที)

รูปแบบการจัดรูปแบบเวลา (Format Specifiers)

Specifierความหมายตัวอย่าง
%Hชั่วโมง 24 ชม. (00-23)16, 23, 22
%hชั่วโมง 12 ชม. (01-12)04, 11, 10
%iนาที (00-59)20, 45, 10
%sวินาที (00-59)00

หมายเหตุ: หากต้องการรูปแบบ 24 ชั่วโมง ให้ใช้ %H:%i แทน %h:%i