這取決於您正在使用的SQL Server版本。
SQL Server 2005中,2008和2008 R2
對於這些版本中,你將需要利用SQLCLR的暴露從.NET該功能。您可以使用DateTime類編寫您自己的SQLCLR函數(如@ GSerg的answer中所述),或者您可以簡單地下載並安裝免費版的SQL#(我是作者,但Date_Format函數是免費的) 。
例子:
SELECT SQL#.Date_Format(GETDATE(), 'dddd in MMMM', '') AS [Default_language],
SQL#.Date_Format(GETDATE(), 'dddd in MMMM', 'he') AS [Hebrew],
SQL#.Date_Format(GETDATE(), 'dddd in MMMM', 'de') AS [German];
返回:
Default_language Hebrew German
Monday in January יום שני in ינואר Montag in Januar
的SQL Server 2012和更新
使用內置FORMAT功能。
例子:
SELECT FORMAT(GETDATE(), 'dddd in MMMM') AS [Default_language],
FORMAT(GETDATE(), 'dddd in MMMM', 'he') AS [Hebrew],
FORMAT(GETDATE(), 'dddd in MMMM', 'de') AS [German];
返回:
Default_language Hebrew German
Monday in January יום שני in ינואר Montag in Januar
對於這兩種SQLCLR和內置FORMAT
選項
以下兩個MSDN頁詳細可用的格式選項:
有很多的智慧,讓有關數據你的數據庫的擔心。數據不包括格式 - 這是應用程序層關注的問題。含義;數據庫根本就不是最好的地方。 –
@MarcGravell我正在使用SQL腳本,沒有應用程序層。 – Aillyn
@MarcGravell我也曾這麼想過。然後我需要從我的SQL Server函數中返回一個XML文檔,此時根據XML表示的外部規範格式化日期變成了純粹的服務器端任務。 – GSerg