Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Thiết lập kiểu dữ liệu TIME chỉ hiển thị HH:MM trong MySQL?

Kiểu TIME trong MySQL luôn lưu trữ đến giây (HH:MM:SS). Để hiển thị chỉ giờ:phút, sử dụng DATE_FORMAT() khi truy vấn.

Tạo bảng

mysql> CREATE TABLE DemoTable (ArrivalTime TIME);

Chèn dữ liệu

mysql> INSERT INTO DemoTable VALUES('08:20');
mysql> INSERT INTO DemoTable VALUES('05:40');

Xem dữ liệu gốc (có giây)

mysql> SELECT * FROM DemoTable;
+-------------+
| ArrivalTime |
+-------------+
| 08:20:00    |
| 05:40:00    |
+-------------+

Định dạng chỉ HH:MM

mysql> SELECT DATE_FORMAT(ArrivalTime, '%H:%i') AS ONLY_HOUR_MINUTE FROM DemoTable;
+------------------+
| ONLY_HOUR_MINUTE |
+------------------+
| 08:20            |
| 05:40            |
+------------------+

Specifiers của DATE_FORMAT()

SpecifierÝ nghĩaVí dụ
%HGiờ 00-2308, 14, 23
%hGiờ 01-1208, 02, 11
%iPhút 00-5920, 05, 59
%sGiây 00-5900, 30
%pAM/PMAM, PM

Lưu ý quan trọng

  • Dữ liệu lưu trữ vẫn đầy đủ HH:MM:SS — chỉ hiển thị bị cắt
  • Để lưu thực sự chỉ HH:MM, dùng VARCHAR(5) hoặc CHAR(5) + kiểm tra constraint
  • MySQL 8.0.13+ hỗ trợ TIME(0) để lưu độ chính xác 0 chữ số phần giây (vẫn lưu giây nhưng luôn 00)

Chuyển đổi ngược: Chuỗi 'HH:MM' → TIME

SELECT STR_TO_DATE('08:20', '%H:%i'); -- Trả về 08:20:00