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

จัดรูปแบบเวลา HH:MM ใน MySQL ด้วย DATE_FORMAT()

เมื่อต้องการแสดงเฉพาะ ชั่วโมง:นาที (HH:MM) จากคอลัมน์ TIME หรือ DATETIME ให้ใช้ฟังก์ชัน DATE_FORMAT() กำหนด Format String

Syntax

SELECT DATE_FORMAT(yourColumnName, '%H:%i') AS alias FROM yourTableName;

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

mysql> create table DemoTable (Arrivaltime time);
mysql> insert into DemoTable values('08:20'),('05:40');

ข้อมูลต้นฉบับ (มีวินาที)

+-------------+
| Arrivaltime |
+-------------+
| 08:20:00    |
| 05:40:00    |
+-------------+

คำสั่งแสดง HH:MM เท่านั้น

mysql> select DATE_FORMAT(Arrivaltime, '%H:%i') AS ONLY_HOUR_MINUTE from DemoTable;

ผลลัพธ์

+------------------+
| ONLY_HOUR_MINUTE |
+------------------+
| 08:20            |
| 05:40            |
+------------------+

Format Specifiers สำหรับเวลา

รูปแบบที่ใช้บ่อย

  • %H:%i → 08:20 (24h, ไม่มีวินาที)
  • %h:%i %p → 08:20 AM (12h)
  • %H:%i:%s → 08:20:00 (Full)

คำเตือน

  • DATE_FORMAT คืนค่าเป็น VARCHAR ไม่ใช่ TIME → เรียงลำดับได้ผิด (String Sort)
  • ต้องการเรียง ให้ ORDER BY คอลัมน์ต้นฉบับ: ORDER BY Arrivaltime
  • MySQL 8.0+ ใช้ CAST(DATE_FORMAT(...) AS TIME) ได้
Specifierความหมายตัวอย่าง
%Hชั่วโมง 00-23 (24h)08, 13, 23
%h / %Iชั่วโมง 01-12 (12h)08, 01, 11
%iนาที 00-5920, 05, 59
%sวินาที 00-5930, 00
%pAM/PMAM, PM
%Tเวลา 24h (%H:%i:%s)08:20:00
%rเวลา 12h (%h:%i:%s %p)08:20:00 AM