如何从mysql中的数字中获取月份名称

时间:2013-04-30 11:34:55

标签: mysql

无论如何从mysql中的月份数得到月份简称? 例如:如果我给3,我需要得到Mar。

8 个答案:

答案 0 :(得分:4)

试试这个:

SELECT MONTHNAME(STR_TO_DATE(1, '%m'));//returns January

另请参阅this

答案 1 :(得分:1)

使用以下功能: 月份编号:MONTH() 月份名称:MONTHNAME() 您应该使用monthname()功能。

答案 2 :(得分:1)

根据手册,'%b'可以完成您的目标

答案 3 :(得分:0)

有一些选项可以检索它,date_format就是其中之一,但它取决于你想要实现的方式和具体内容。 我建议你看一下MySQL Date文档:

https://dev.mysql.com/doc/refman/4.1/en/date-and-time-functions.html

答案 4 :(得分:0)

SELECT DATE_FORMAT('2013-12-01' + INTERVAL n MONTH, '%b') As Month_Name

n更改为月份编号。

答案 5 :(得分:0)

你好,这应该回答你的问题

SELECT left(MONTHNAME(STR_TO_DATE(1, '%m')),3) from dual
当我们不想在mysql中引用表但只是想执行查询时,

dual被用作欺骗表。

答案 6 :(得分:0)

SELECT MONTHNAME(CONCAT(your_column)) as month from table_name;

答案 7 :(得分:0)

我知道这个问题已经老了,但是今天发现它很重要。

解决方案:

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')

返回“ Mar”


说明:

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'类型-短月份名称格式化日期字符串