Sử dụng STR_TO_DATE() với format '%Y-%m-%d %H:%i:%s' để parse chuỗi thành kiểu DATETIME (24h).
Tạo bảng
mysql> CREATE TABLE DemoTable (ArrivalDate VARCHAR(200));
Chèn chuỗi datetime
mysql> INSERT INTO DemoTable VALUES('2019-01-31 15:45:23');
mysql> INSERT INTO DemoTable VALUES('2012-12-12 20:30:26');
mysql> INSERT INTO DemoTable VALUES('2016-06-07 21:04:05');
mysql> INSERT INTO DemoTable VALUES('2017-02-03 19:24:32');
Xem dữ liệu chuỗi
mysql> SELECT * FROM DemoTable;
+---------------------+ | ArrivalDate | +---------------------+ | 2019-01-31 15:45:23 | | 2012-12-12 20:30:26 | | 2016-06-07 21:04:05 | | 2017-02-03 19:24:32 | +---------------------+
Chuyển sang DATETIME (24h format)
mysql> SELECT STR_TO_DATE(ArrivalDate, '%Y-%m-%d %H:%i:%s') AS `24HourFormat` FROM DemoTable;
+---------------------+ | 24HourFormat | +---------------------+ | 2019-01-31 15:45:23 | | 2012-12-12 20:30:26 | | 2016-06-07 21:04:05 | | 2017-02-03 19:24:32 | +---------------------+
Format specifiers phổ biến
| Specifier | Ý nghĩa | Ví dụ |
|---|---|---|
%Y | Năm 4 chữ số | 2019 |
%m | Tháng 01-12 | 01, 12 |
%d | Ngày 01-31 | 31, 07 |
%H | Giờ 00-23 (24h) | 15, 20, 21 |
%h | Giờ 01-12 (12h) | 03, 08 |
%i | Phút 00-59 | 45, 30 |
%s | Giây 00-59 | 23, 26 |
%p | AM/PM | PM, AM |
Chuyển ngược: DATETIME → Chuỗi format tùy chỉnh
SELECT DATE_FORMAT(NOW(), '%d/%m/%Y %H:%i'); -- 09/04/2019 15:45
Lưu ý
- Chuỗi input phải khớp chính xác format (kể cả phân cách -, :, khoảng trắng)
- Nếu không khớp → trả về NULL
- MySQL 8.0+ hỗ trợ
CAST('2019-01-31 15:45:23' AS DATETIME)cho format chuẩn ISO