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

Chuyển đổi VARCHAR sang DATE trong MySQL

Kết hợp STR_TO_DATE() (parse chuỗi thành DATE) và DATE_FORMAT() (định dạng lại) để chuyển cột VARCHAR sang DATE chuẩn.

Cú pháp

SELECT DATE_FORMAT(STR_TO_DATE(cot_varchar, 'dinh_dang_nguon'), 'dinh_dang_dich') 
FROM ten_bang;

Ví dụ minh họa

Tạo bảng VarcharToDate với cột Created_Time VARCHAR(100) lưu dạng dd/mm/yyyy:

INSERT INTO VarcharToDate (Created_Time) VALUES
('12/1/2016'), ('14/3/2017'), ('15/3/2018'),
('19/5/2011'), ('19/8/2019'), ('21/11/2020');

Truy vấn chuyển đổi

SELECT DATE_FORMAT(STR_TO_DATE(Created_Time, '%d/%m/%Y'), '%Y-%m-%d') AS Date 
FROM VarcharToDate;

Kết quả (định dạng ISO yyyy-mm-dd):

+------------+
| Date       |
+------------+
| 2016-01-12 |
| 2017-03-14 |
| 2018-03-15 |
| 2011-05-19 |
| 2019-08-19 |
| 2020-11-21 |
+------------+

Các định dạng thường dùng:

  • %d/%m/%Y → 31/12/2023
  • %Y-%m-%d → 2023-12-31 (chuẩn ISO)
  • %m/%d/%Y → 12/31/2023 (phong cách US)

Lưu ý: Nếu chỉ cần so sánh/lọc theo ngày, có thể dùng trực tiếp STR_TO_DATE(cot, '%d/%m/%Y') mà không cần DATE_FORMAT.