有没有办法从 mysql 中的月份数中获取月份的简称?例如:如果我给 3,我需要得到 Mar。
8 回答
使用以下函数: 月份编号:MONTH()
月份名称:MONTHNAME()
您应该使用monthname()
函数。
根据手册,'%b' 做你所追求的
SELECT MONTHNAME(CONCAT(your_column)) as month from table_name;
您好,这应该回答您的查询
SELECT left(MONTHNAME(STR_TO_DATE(1, '%m')),3) from dual
dual
当我们不想在 mysql 中引用表但只想执行查询时使用欺骗表。
有几个选项可以检索它, date_format 就是其中之一,但这取决于您尝试实现的方式和具体内容。我建议你看一下 MySQL Date 文档:
https://dev.mysql.com/doc/refman/4.1/en/date-and-time-functions.html
SELECT DATE_FORMAT('2013-12-01' + INTERVAL n MONTH, '%b') As Month_Name
更改n
为月份编号。
我知道这个问题已经过时了,但今天发现它很重要。
解决方案:
SELECT DATE_FORMAT(CONCAT(YEAR(NOW()),'-',LPAD( myMonthInteger ,2,'0'),'-01'),'%b')
将值更改myMonthInteger
为您的列名或月份索引值 (1-12)。为其他值返回 NULL。
为 myMonthInteger 使用 OP 值为“3”的示例:
SELECT DATE_FORMAT(CONCAT(YEAR(NOW()),'-',LPAD( 3,2,'0'),'-01'),'%b')
返回“三月”
解释:
LPAD( myMonthInteger ,2,'0')
如果需要,将前导零添加到月份整数。
CONCAT(YEAR(NOW()),'-',LPAD( myMonthInteger ,2,'0'),'-01')
使用当前年份和月份的第一天创建一个有效的 mysql 日期字符串
DATE_FORMAT(CONCAT(YEAR(NOW()),'-',LPAD( myMonthInteger ,2,'0'),'-01'),'%b')
使用 '%b' 类型格式化日期字符串 - 短月份名称