2012-11-22 164 views
1

有没有在SQL Server中内置的函数,返回我的抛光(或任何其他语言)逐月数名?或者需要我写我自己的功能?月份名称

例如

GetMonthName(11) => Listopad (November) 

回答

6

可以使用功能Month或日期部分“月”从日期/时间返回月份数。然后你可以使用DATENAME功能:

SELECT DATENAME(month, GETDATE()) AS 'Month Name' 

的返回值取决于使用SET LANGUAGE并为登录的“配置默认语言”服务器配置选项设置的语言环境。

所以按照亚切克的评论,这可以概括为:

SET LANGUAGE Polish SELECT DATENAME(month, GETDATE()) AS 'Month Name' 

如果从字面上你已经是一个月的数字,你需要建立一个结合了这个月号的日期时间变量,这样就可以应用上述方法。在SQL Server 2012中,您可以使用DATETIMEFROMPARTS

SELECT @RandomDate = DATETIMEFROMPARTS(2012, @MonthNumber, 1, 1, 1, 1, 0) 
SET LANGUAGE Polish SELECT DATENAME(month, @RandomDate) AS 'Month Name' 
+0

如上所述。 OP正在要求一种方法,他们也可以通过“月份号码”。 –

+1

设置语言波兰 SELECT DATENAME(月,GETDATE())AS '月份名称' – Jacek

+0

@Ash,月*不*返回月份数。 – RoadWarrior