Dùng STR_TO_DATE parse chuỗi dd/mm/yyyy thành DATE, rồi DATE_FORMAT xuất ra yyyymmdd.
Cú pháp
SELECT DATE_FORMAT(STR_TO_DATE(cotNgay, '%d/%m/%Y'), '%Y%m%d') FROM tenBang;
Ví dụ
Tạo bảng cột varchar dd/mm/yyyy:
mysql> create table DemoTable (
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
Admissiondate varchar(200)
);
Query OK, 0 rows affected (0.54 sec)Dữ liệu: '21/10/2014', '01/12/2016', '31/01/2017'
Chuyển đổi
mysql> select date_format(str_to_date(Admissiondate,'%d/%m/%Y'),'%Y%m%d') from DemoTable;
+-------------------------------------------------------------+ | date_format(str_to_date(Admissiondate,'%d/%m/%Y'),'%Y%m%d') | +-------------------------------------------------------------+ | 20141021 | | 20161201 | | 20170131 | +-------------------------------------------------------------+
Format code:
%d- ngày (01-31)%m- tháng (01-12)%Y- năm 4 chữ số%y- năm 2 chữ số
Lưu ý: STR_TO_DATE trả về NULL nếu chuỗi không khớp format. Nên validate dữ liệu trước khi chuyển đổi hàng loạt.