Để trích xuất và định dạng chỉ **giờ:phút** từ cột DATETIME hoặc TIMESTAMP, dùng hàm DATE_FORMAT() với định dạng '%H:%i'.
Cú pháp
SELECT DATE_FORMAT(ten_cot, '%H:%i') AS ten_alias FROM ten_bang;
%H: Giờ 24h (00-23).%i: Phút (00-59).%h: Giờ 12h (01-12) – ít dùng.
Ví dụ minh họa
mysql> CREATE TABLE DemoTable1527 (ArrivalDatetime DATETIME);
mysql> INSERT INTO DemoTable1527 VALUES
-> ('2019-01-10 12:34:45'),
-> ('2018-12-12 11:00:34'),
-> ('2019-03-21 04:55:56');
mysql> SELECT DATE_FORMAT(ArrivalDatetime, '%H:%i') AS HourAndMinutes
-> FROM DemoTable1527;
Kết quả:
+----------------+ | HourAndMinutes | +----------------+ | 12:34 | | 11:00 | | 04:55 | +----------------+
Các định dạng thời gian phổ biến
| Định dạng | Kết quả | Mô tả |
|---|---|---|
%H:%i:%s | 12:34:45 | Giờ:Phút:Giây (24h) |
%h:%i %p | 12:34 PM | Giờ 12h + AM/PM |
%T | 12:34:45 | Viết tắt %H:%i:%s |
%r | 12:34:45 PM | Viết tắt %h:%i:%s %p |
Lưu ý
- Kết quả kiểu
VARCHAR– không thể dùng trực tiếp trong so sánh thời gian. CầnCAST(... AS TIME)hoặc so sánh cột gốc. - Định dạng ngày:
DATE_FORMAT(cot, '%Y-%m-%d')→ '2019-01-10'. - Hiệu năng: DATE_FORMAT không dùng index. Nếu lọc theo giờ, so sánh cột gốc:
WHERE TIME(cot) BETWEEN '08:00' AND '17:00'.