0

有没有办法从 mysql 中的月份数中获取月份的简称?例如:如果我给 3,我需要得到 Mar。

4

8 回答 8

5

尝试这个:

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

也参考这个

于 2013-04-30T11:36:48.280 回答
2

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

于 2013-04-30T11:40:22.443 回答
1

根据手册,'%b' 做你所追求的

于 2013-04-30T11:40:34.937 回答
0
SELECT MONTHNAME(CONCAT(your_column)) as month from table_name;
于 2015-02-25T13:02:30.690 回答
0

您好,这应该回答您的查询

SELECT left(MONTHNAME(STR_TO_DATE(1, '%m')),3) from dual

dual当我们不想在 mysql 中引用表但只想执行查询时使用欺骗表。

于 2013-11-29T08:05:58.133 回答
0

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

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

于 2013-04-30T11:37:17.480 回答
0
SELECT DATE_FORMAT('2013-12-01' + INTERVAL n MONTH, '%b') As Month_Name

更改n为月份编号。

于 2013-04-30T11:40:15.763 回答
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')

返回“三月”


解释:

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

于 2019-11-08T21:25:37.550 回答