1

SQL Server 中是否有一个内置函数可以逐月返回我的波兰语(或任何其他语言)名称?还是需要我编写自己的函数?

例如

GetMonthName(11) => Listopad (November)
4

1 回答 1

7

您可以使用函数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'
于 2012-11-22T15:58:27.530 回答