SQL Server中是否有内置函数可以返回逐个月份的波兰语(或任何其他语言)名称?或者我需要编写自己的函数吗?
例如
GetMonthName(11) => Listopad (November)
答案 0 :(得分:6)
您可以使用函数Month或datepart“month”从日期/时间返回月份编号。然后您可以使用DATENAME功能:
SELECT DATENAME(month, GETDATE()) AS 'Month Name'
返回值取决于使用SET LANGUAGE设置的语言环境以及用于登录的“配置默认语言”服务器配置选项。
根据Jacek的评论,这可以概括为:
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'