MySQL 将月份数字转换为月份名称

MySQL convert month number to month name

是否可以将 integer/column 转换为 MySQL 中的月份名称? 例如,1 变为 'Jan' 或 'January'。 13及以后报错,否则将永远不会使用。

  • 我们可以使用 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