Mysql 在SQL中显示完整日期的月份

Mysql 在SQL中显示完整日期的月份,mysql,sql,date,Mysql,Sql,Date,我的数据库中有一列,其中填充了完整日期:(0000-00-00) 我需要将此日期显示为月份字符串(例如一月) 我在这里的SQL查询上有太多的选择: 1当月份为'01'='January'(我认为这是最好的选择,因为我可以随意更改字符串(以葡萄牙语为例,首字母大写)。我无法做到这一点,我尝试了子字符串,但日期不喜欢子字符串语句 2只需将日期显示为月份: MONTH(DT_CANCEL) 但是,我需要显示字符串(一月),上面只显示输出01 在SQL查询中显示日期的完整月份名称的最佳选项是什么(以及

我的数据库中有一列,其中填充了完整日期:(0000-00-00) 我需要将此日期显示为月份字符串(例如一月)

我在这里的SQL查询上有太多的选择:

1当月份为'01'='January'(我认为这是最好的选择,因为我可以随意更改字符串(以葡萄牙语为例,首字母大写)。我无法做到这一点,我尝试了子字符串,但日期不喜欢子字符串语句

2只需将日期显示为月份:

MONTH(DT_CANCEL)
但是,我需要显示字符串(一月),上面只显示输出01

在SQL查询中显示日期的完整月份名称的最佳选项是什么(以及如何显示)


使用MySQL。在Oracle中,使用TO_CHAR:

select TO_CHAR(SYSDATE, 'Month') FROM dual;

December 

如果您使用的是MS SQL Server,则无需编写Case语句,请尝试以下操作:

SET LANGUAGE Portuguese

SELECT UPPER(LEFT(DATENAME(month, getdate()),1))+LOWER(SUBSTRING(DATENAME(month, 
getdate()),2,LEN(DATENAME(month, getdate())))) 
如果要重置服务器的语言,可以通过运行以下脚本查看别名列表:

SELECT * FROM sys.syslanguages

您可以简单地使用MonthName:

SELECT MONTHNAME('2009-05-18');
这将在5月份输出

此处参考:
在mysql中,您可以使用monthname

SELECT MONTHNAME(DT_CANCEL) from your_table;
mysql:


对不起,MYSQL这对我来说很有效,现在,是否可以只显示前三个字母?Jan?而不是一月?我刚刚使用:LEFT(MONTHNAME(DT_CANCEL),3),worked,Thank!@Gauravsa SELECT MONTHNAME('2009-05-05');在这个语句中,如何决定月份。格式可能是“yyyy-mm-dd”或“yyyy-dd-mm”您可以使用str_to_date函数,然后使用monthname
select date_format('2018-12-01','%M'); /* prints December*/

select date_format('2018-12-01','%b'); /* prints Dec*/