Sử dụng STR_TO_DATE(string, format) để chuyển chuỗi ngày tháng tùy ý thành giá trị DATE/DATETIME.
Cú pháp
SELECT STR_TO_DATE(date_string, 'format') FROM table_name;
Các format specifier phổ biến
| Specifier | Ý nghĩa | Ví dụ |
|---|---|---|
%d |
Ngày (01-31) | 10 |
%m |
Tháng (01-12) | 11 |
%Y |
Năm 4 chữ số | 2018 |
%y |
Năm 2 chữ số | 18 |
%b |
Tên tháng viết tắt | Nov |
%M |
Tên tháng đầy đủ | November |
%H |
Giờ 24h (00-23) | 13 |
%i |
Phút (00-59) | 10 |
%s |
Giây (00-59) | 20 |
Ví dụ minh họa
mysql> CREATE TABLE ParseDateDemo (yourDate VARCHAR(200));
Query OK, 0 rows affected (0.55 sec)
mysql> INSERT INTO ParseDateDemo VALUES
('10-Nov-18'), ('15-Nov-18'), ('10-Dec-18'), ('10-Aug-17');
Query OK, 4 rows affected
Parse định dạng 'DD-Mon-YY':
mysql> SELECT STR_TO_DATE(yourDate, '%d-%b-%y') AS DateNumber FROM ParseDateDemo;
Kết quả:
+------------+ | DateNumber | +------------+ | 2018-11-10 | | 2018-11-15 | | 2018-12-10 | | 2017-08-10 | +------------+
Lưu ý
- Format string phải khớp chính xác với dữ liệu (khoảng trắng, phân cách).
- Năm 2 chữ số (%y): 00-69 → 2000-2069, 70-99 → 1970-1999.
- Ngược lại:
DATE_FORMAT(date, format)để xuất chuỗi. - Nếu parse thất bại: trả về NULL.