Sử dụng hàm MONTHNAME() kết hợp STR_TO_DATE() để chuyển số tháng (1-12) thành tên tháng.
Cú pháp
SELECT MONTHNAME(STR_TO_DATE(month_column, '%m')) AS month_name FROM your_table;
Giải thích:
STR_TO_DATE(value, '%m')chuyển chuỗi số thành giá trị DATE (ngày mặc định là 1).MONTHNAME(date)trả về tên tháng đầy đủ (January, February...).
Ví dụ minh họa
mysql> CREATE TABLE MonthDemo (MonthNum INT); Query OK, 0 rows affected (0.87 sec) mysql> INSERT INTO MonthDemo VALUES (1),(2),(3),(4),(5),(6), (7),(8),(9),(10),(11),(12); Query OK, 12 rows affected
Truy vấn:
mysql> SELECT MONTHNAME(STR_TO_DATE(MonthNum, '%m')) AS MonthName FROM MonthDemo;
Kết quả:
+-----------+ | MonthName | +-----------+ | January | | February | | March | | April | | May | | June | | July | | August | | September | | October | | November | | December | +-----------+
Cách khác: Sử dụng DATE_FORMAT()
SELECT DATE_FORMAT(STR_TO_DATE(MonthNum, '%m'), '%M') AS MonthName FROM MonthDemo;
%M trong DATE_FORMAT cũng trả về tên tháng đầy đủ.
Lưu ý
- Nếu cột đã là kiểu DATE/DATETIME, dùng trực tiếp:
MONTHNAME(date_column). - Hàm này trả về tên tiếng Anh. Để localize, cần thiết lập
lc_time_names.