2012-11-22 160 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