การจัดรูปแบบ TIME ให้แสดงแค่ ชั่วโมง:นาที (HH:MM) ด้วย TIME_FORMAT
TIME_FORMAT(time, format) ใช้จัดรูปแบบค่า TIME/ DATETIME ให้แสดงตาม format string ที่กำหนด
สร้างตารางและข้อมูล
mysql> create table DemoTable1419 (
-> ArrivalTime time
-> );
Query OK, 0 rows affected (0.78 sec)
mysql> insert into DemoTable1419 values('12:30:45');
mysql> insert into DemoTable1419 values('11:00:55');
mysql> insert into DemoTable1419 values('09:59:34');
ข้อมูลต้นฉบับ
+-------------+ | ArrivalTime | +-------------+ | 12:30:45 | | 11:00:55 | | 09:59:34 | +-------------+
คำสั่ง TIME_FORMAT
mysql> select ArrivalTime, time_format(ArrivalTime, '%H:%i') from DemoTable1419;
ผลลัพธ์
+-------------+----------------------------------+ | ArrivalTime | time_format(ArrivalTime, '%H:%i') | +-------------+----------------------------------+ | 12:30:45 | 12:30 | | 11:00:55 | 11:00 | | 09:59:34 | 09:59 | +-------------+----------------------------------+
Format Specifiers สำหรับ TIME
| Specifier | ความหมาย | ตัวอย่าง |
|---|---|---|
%H | ชั่วโมง 24h (00-23) | 12, 09 |
%h | ชั่วโมง 12h (01-12) | 12, 09 |
%I | เหมือน %h | 12, 09 |
%i | นาที (00-59) | 30, 55 |
%s | วินาที (00-59) | 45 |
%f | ไมโครวินาที (6 หลัก) | 123456 |
%p | AM/PM | PM |
%r | เวลา 12h (hh:mm:ss AM/PM) | 12:30:45 PM |
%T | เวลา 24h (HH:MM:SS) | 12:30:45 |
รูปแบบที่นิยม
TIME_FORMAT(t, '%H:%i') -- 12:30 (24h, ไม่มีวินาที)
TIME_FORMAT(t, '%h:%i %p') -- 12:30 PM (12h + AM/PM)
TIME_FORMAT(t, '%T') -- 12:30:45 (24h พร้อมวินาที)
TIME_FORMAT(t, '%r') -- 12:30:45 PM (12h พร้อมวินาที AM/PM)
DATE_FORMAT กับ TIME (ทำงานได้เหมือนกัน)
SELECT DATE_FORMAT(ArrivalTime, '%H:%i') FROM DemoTable1419;
DATE_FORMAT รับทั้ง DATE, DATETIME, TIME — ใช้ได้กว้างกว่า
ข้อควรระวัง
- คืนค่า STRING (VARCHAR) ไม่ใช่ TIME type
- ใช้สำหรับแสดงผล (display) ไม่ควรใช้ใน WHERE/ORDER BY/JOIN
- หากต้องการคำนวณเวลา ใช้ค่าต้นฉบับ (TIME type) คำนวณเสร็จค่อย FORMAT