我将月份存储在SQL Server中为1,2,3,4,…12。我想把它们显示为一月,二月等。在SQL Server中有一个函数像MonthName(1) = 1月?如果可能的话,我尽量避免使用CASE语句。
当前回答
这个对我很有用:
@MetricMonthNumber (some number)
SELECT
(DateName( month , DateAdd( month , @MetricMonthNumber - 1 , '1900-01-01' ) )) AS MetricMonthName
FROM TableName
上面的帖子来自@leoinfo和@Valentino Vranken。刚刚做了一个快速选择,它工作。
其他回答
你可以这样得到日期。 -用户表
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 |
我认为这是当你有月份号时,获得月份名称的最好方法
Select DateName( month , DateAdd( month , @MonthNumber , 0 ) - 1 )
Or
Select DateName( month , DateAdd( month , @MonthNumber , -1 ) )
下面是我利用别人的信息来解决问题的方法。
datename(month,dateadd(month,datepart(month,Help_HelpMain.Ticket_Closed_Date),-1)) as monthname
to_char(to_date(V_MONTH_NUM,'MM'),'MONTH')
其中V_MONTH_NUM是月份号
SELECT to_char(to_date(V_MONTH_NUM,'MM'),'MONTH') from dual;
您可以使用内置的CONVERT函数
select CONVERT(varchar(3), Date, 100) as Month from MyTable.
这将显示一个月的前3个字符(JAN,FEB等)。