MySQL将月份编号转换为月份名称

时间:2018-11-08 17:47:16

标签: mysql date date-conversion

在MySQL中是否可以将整数/列转换为月份名称? 例如,1变为“ Jan”或“ January”。 13及更高版本给出错误,否则将永远不会使用。

1 个答案:

答案 0 :(得分:1)

  • 我们可以使用Str_To_Date()函数将给定的输入数字转换为MySQL日期格式(仅针对月份)。
  • 现在,我们只需要使用Monthname()函数从日期中提取月份名称即可。
  • 这仅在禁用NO_ZERO_DATE模式时有效。

尝试:

SET sql_mode = ''; -- disable NO_ZERO_DATE mode
SELECT MONTHNAME(STR_TO_DATE(1, '%m'));

根据注释中的 @Felk 的建议,如果需要缩短月份名称,可以改用Date_Format()函数:

SET sql_mode = ''; -- disable NO_ZERO_DATE mode
SELECT DATE_FORMAT(STR_TO_DATE(1, '%m'), '%b');

如果您不想禁用NO_ZERO_DATE模式,则可以使用月份创建任意随机日期并调用Monthname()

SELECT MONTHNAME(CONCAT('2018-',3,'-1')); -- 3 is the input number