SQL 具有文化参数的服务器格式不起作用

SQL Server FORMAT with culture parameter not working

我正在使用 SQL Server 2017 并尝试在 Format 函数中使用区域性。当 运行 服务器上的此查询结果不正确时:

SELECT @@VERSION --> Microsoft SQL Server 2017 (RTM-CU17) (KB4515579) - 14.0.3238.1 (X64)   Sep 13 2019 15:49:57   Copyright (C) 2017 Microsoft Corporation  Enterprise Edition (64-bit) on Windows Server 2012 R2 Standard 6.3 <X64
SELECT FORMAT(SYSDATETIME(), N'Y', 'fa'); --> February 2020

但是当 运行 这在另一台服务器 SQL server 2017 中时脚本工作正常:

SELECT @@VERSION --> Microsoft SQL Server 2017 (RTM-CU3-GDR) (KB4052987) - 14.0.3015.40 (X64)   Dec 22 2017 16:13:22   Copyright (C) 2017 Microsoft Corporation  Enterprise Edition (64-bit) on Windows 10 Enterprise 10.0 <X64> (Build 16299: ) 
SELECT FORMAT(SYSDATETIME(), N'Y', 'fa'); --> بهمن, 1398

必须检查哪些配置?

P.S: 我发现这个问题出现在Windows Server 2012 R2 及更低版本上。

终于找到问题了。此功能取决于安装在 SQL 服务器上的 Windows 版本。在 Windows Server 2012 R2Windows 10 中添加了波斯历。

此图显示 fa 文化在 Windows Server 2012 R2Windows 10

中的日期格式

这张图片显示了旧版本 Windows

fa 文化的日期格式

其实问题出在安装SQLServer的Windows服务器上。 对于您想使用的任何语言,Windows 服务器必须在 OS 级别安装此语言。 要在“Windows Server 2012 R2”或更高版本中安装,只需按照以下步骤操作:

  • 搜索“控制面板”并打开它
  • Select“查看方式:大图标”
  • 点击“语言”

添加您需要的语言,然后为添加的新语言安装“语言包”。

之后,您在 FORMAT 函数中的参数将被接受。