SQL Server FORMAT с параметром культуры не работает
Я использую 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
Какие настройки нужно проверить?
PS: Я понял, что эта проблема возникает в Windows Server 2012 R2 и более ранних версиях.
2 ответа
Наконец я нашел проблему. Эта функция зависит от версии Windows, на которой установлен SQL-сервер. Персидский календарь был добавлен вWindows Server 2012 R2
А также Windows 10
.
На этом изображении показан формат даты для fa
культура в Windows Server 2012 R2
а также Windows 10
https://stackru.com/image s/10d12da3332c3e9cbd1d4aa202b4c3fba551b4de.jpg
И это изображение показывает формат даты для fa
культура в старой версии Windows
https://stackru.com/image s/b260eb996d06dfe1fa82e8731f3c4ba3dbc2dc7e.jpg
На самом деле проблема в Windows Server, где установлен SQLServer. Для любого языка, который вы хотите использовать, в Windows Server этот язык должен быть установлен на уровне ОС. Для установки в «Windows Server 2012 R2» или более поздней версии просто выполните следующие действия:
- Найдите "Панель управления" и откройте ее.
- Выберите "Просмотр: крупные значки".
- Щелкните "Языки"
Добавьте нужный язык, а после этого также установите «Языковой пакет» для нового добавленного языка.
После этого ваш параметр в функции FORMAT будет принят.