我将月份存储在SQL Server中为1,2,3,4,…12。我想把它们显示为一月,二月等。在SQL Server中有一个函数像MonthName(1) = 1月?如果可能的话,我尽量避免使用CASE语句。


当前回答

如果有人想在MySQL中得到同样的东西。请查看以下查询。

 SELECT MONTH(STR_TO_DATE('November', '%M'))

这样我得到了所要求的结果。

其他回答

你可以这样得到日期。 -用户表

id name created_at
1  abc  2017-09-16
2  xyz  2017-06-10

您可以像这样获得monthname

select year(created_at), monthname(created_at) from users;

输出

+-----------+-------------------------------+
| year(created_at) | monthname(created_at)  |
+-----------+-------------------------------+
|      2017        | september              |
|      2017        | june                   |

以下是我的工作:

CAST(GETDATE() AS CHAR(3))

这个对我很有用:

@MetricMonthNumber (some number)

SELECT 
(DateName( month , DateAdd( month , @MetricMonthNumber - 1 , '1900-01-01' ) )) AS MetricMonthName
FROM TableName

上面的帖子来自@leoinfo和@Valentino Vranken。刚刚做了一个快速选择,它工作。

您可以使用内置的CONVERT函数

select CONVERT(varchar(3), Date, 100)  as Month from MyTable.

这将显示一个月的前3个字符(JAN,FEB等)。

要将月号转换为月名,请尝试以下步骤

declare @month smallint = 1
select DateName(mm,DATEADD(mm,@month - 1,0))