我有几个月在SQL Server中存储为1,2,3,4,... 12.我想将它们显示为1月,2月等.在SQL Server中是否有像MonthName(1)= January这样的函数?如果可能的话,我试图避免CASE声明.
我认为这是得到的最好方式月份的名字时,你有一个月数
Select DateName( month , DateAdd( month , @MonthNumber , 0 ) - 1 )
要么
Select DateName( month , DateAdd( month , @MonthNumber , -1 ) )
有点hacky但应该工作:
SELECT DATENAME(month, DATEADD(month, @mydate-1, CAST('2008-01-01' AS datetime)))
SELECT DATENAME(month, GETDATE()) AS 'Month Name'
SUBSTRING('JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC ', (@intMonth * 4) - 3, 3)
使用最佳方式
Select DateName( month , DateAdd( month , @MonthNumber , -1 ))
这很简单.
select DATENAME(month, getdate())
输出:1月
您可以使用内置CONVERT
功能
select CONVERT(varchar(3), Date, 100) as Month from MyTable.
这将显示月份的前3个字符(JAN,FEB等。)
除了原创
SELECT DATENAME(m, str(2) + '/1/2011')
你可以这样做
SELECT DATENAME(m, str([column_name]) + '/1/2011')
这样,您就可以获得表中所有行的名称.其中[column_name]表示包含数值1到12的整数列
2表示任何整数,通过联系人字符串我创建了一个日期,我可以提取月份.'/ 1/2011'可以是任何日期
如果你想用变量做这个
DECLARE @integer int; SET @integer = 6; SELECT DATENAME(m, str(@integer) + '/1/2011')
以下适用于我:
CAST(GETDATE() AS CHAR(3))
使用此语句将“月份”数值转换为“月份名称”。
SELECT CONVERT(CHAR(3), DATENAME(MONTH, GETDATE()))