ฟังก์ชัน TIME_FORMAT() ใช้เพื่อจัดรูปแบบ (format) ค่าเวลา TIME หรือ DATETIME ให้อยู่ในรูปแบบที่ต้องการ โดยสามารถกำหนดรูปแบบการแสดงผลได้อย่างยืดหยุ่น เช่น 12 ชั่วโมง, 24 ชั่วโมง, แสดงเฉพาะนาที ฯลฯ
ประโยชน์ของฟังก์ชัน TIME_FORMAT()
- แสดงผลเวลาตามรูปแบบที่อ่านง่าย เช่น
02:30 PM - ใช้ในรายงานหรือ UI ที่ต้องแสดงเวลาแบบกำหนดเอง
- แปลงเวลา 24 ชม. เป็น 12 ชม. ได้สะดวก
- เหมาะสำหรับแสดงเวลาในระบบที่ใช้ทั้งภาษาไทย/อังกฤษ
รูปแบบการใช้งาน
TIME_FORMAT(time_value, format)
time_valueคือค่าประเภทTIME,DATETIME,TIMESTAMPformatคือรูปแบบที่ต้องการแสดงผลเวลา
Format Specifiers ที่สามารถใช้ได้
| Specifier | คำอธิบาย | ตัวอย่างผลลัพธ์ |
|---|---|---|
| %f | ไมโครวินาที (000000 – 999999) | 123456 |
| %H | ชั่วโมง (รูปแบบ 24 ชม. มีเลข 0 นำหน้า) (00–23) | 14 |
| %h | ชั่วโมง (รูปแบบ 12 ชม. มีเลข 0 นำหน้า) (01–12) | 02 |
| %I | ชั่วโมง (รูปแบบ 12 ชม. มีเลข 0 นำหน้า) (01–12) | 09 |
| %i | นาที (00–59) | 30 |
| %k | ชั่วโมง (24 ชม. ไม่เติม 0 ข้างหน้า) (0–23) | 9 |
| %l | ชั่วโมง (12 ชม. ไม่เติม 0 ข้างหน้า) (1–12) | 9 |
| %S | วินาที (00–59) | 45 |
| %s | วินาที (00–59) | 45 |
| %p | AM หรือ PM | PM |
| %r | เวลาแบบ 12 ชม. (hh:mm:ss AM/PM) | 02:30:00 PM |
| %T | เวลาแบบ 24 ชม. (hh:mm:ss) | 14:30:00 |
ตัวอย่างการใช้งาน
แสดงเวลาในรูปแบบ 12 ชั่วโมง + AM/PM
SQL
SELECT TIME_FORMAT('14:30:00', '%h:%i %p') AS formatted_time;
-- ผลลัพธ์: 02:30 PMดึงเวลาแบบ HH:MM จาก DATETIME
SQL
SELECT TIME_FORMAT(NOW(), '%H:%i') AS time_only;
-- ผลลัพธ์: เช่น 16:45ใช้กับข้อมูลในตาราง
SQL
SELECT appointment_time,
TIME_FORMAT(appointment_time, '%r') AS display_time
FROM appointments;
-- แสดงเวลาแบบ hh:mm:ss AM/PMแสดงเวลานัดหมายแบบ 12 ชั่วโมงในระบบจอง
SQL
SELECT customer_name,
TIME_FORMAT(booking_time, '%h:%i %p') AS show_time
FROM bookings;ใช้ร่วมกับ DATE_FORMAT() เพื่อแสดงวันที่ + เวลาแบบกำหนดเอง
SQL
SELECT DATE_FORMAT(order_date, '%d/%m/%Y') AS order_day,
TIME_FORMAT(order_date, '%H:%i') AS order_time
FROM orders;