Sử dụng hàm DATE_FORMAT() kết hợp STR_TO_DATE() để chuyển đổi chuỗi ngày sang định dạng tháng tên.
Ví dụ minh họa
Tạo bảng lưu ngày dưới dạng chuỗi:
mysql> CREATE TABLE DemoTable1320 (
MonthName VARCHAR(20)
);
Chèn dữ liệu (định dạng dd/mm/yyyy):
mysql> INSERT INTO DemoTable1320 VALUES('10/10/2010');
mysql> INSERT INTO DemoTable1320 VALUES('11/12/2018');
mysql> INSERT INTO DemoTable1320 VALUES('12/01/2019');
Xem dữ liệu gốc:
mysql> SELECT * FROM DemoTable1320;
+------------+ | MonthName | +------------+ | 10/10/2010 | | 11/12/2018 | | 12/01/2019 | +------------+
Truy vấn chuyển đổi sang tên tháng:
mysql> SELECT DATE_FORMAT(STR_TO_DATE(MonthName, '%d/%m/%Y'), '%M') FROM DemoTable1320;
Kết quả:
+-----------------------------------------------------+ | DATE_FORMAT(STR_TO_DATE(MonthName,'%d/%m/%Y'),'%M') | +-----------------------------------------------------+ | October | | December | | January | +-----------------------------------------------------+
Giải thích:
STR_TO_DATE(MonthName, '%d/%m/%Y'): Chuyển chuỗi sang kiểu DATE theo định dạng ngày/tháng/năm.DATE_FORMAT(date, '%M'): Định dạng ngày thành tên tháng đầy đủ (January, February...). Dùng%bcho tên viết tắt (Jan, Feb...).
Lưu ý: Nếu cột đã kiểu DATE/DATETIME, chỉ cần DATE_FORMAT(cot, '%M').