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

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

本文介绍了MySQL将月份编号转换为月份名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Is it possible to convert an integer/column to month name in MySQL?For example, 1 becomes 'Jan' or 'January'. 13 and onwards give an error, or will be never used.

推荐答案

  • 我们可以使用 Str_To_Date() 函数.
  • 现在,我们只需要使用 Monthname() 函数从日期中提取月份名称.
  • 这仅在禁用NO_ZERO_DATE模式时有效.
    • We can convert the given input number to MySQL date format (focusing on month only), using Str_To_Date() function.
    • Now, we simply need to use Monthname() function to extract the month name from the date.
    • This will work only when NO_ZERO_DATE mode is disabled.
    • 尝试:

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


      按照注释中的 @Felk 的建议,如果我们需要缩短月份名称,可以使用 Date_Format() 函数代替:


      As @Felk suggested in comments, if we need to get shortened month name, we can use Date_Format() function instead:

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


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


      If you don't want to disable the NO_ZERO_DATE mode, then you can create any random date using the month and call Monthname():

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

      这篇关于MySQL将月份编号转换为月份名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-25 23:25