Настройки языка сервера SQL - сохранить настройки даты Великобритании в представлении - PullRequest
0 голосов
/ 26 апреля 2018

Я пытаюсь преобразовать строковую дату / время из существующих данных в тип T-SQL DATETIME.Строки в британском формате 'дд / мм / гггг ЧЧ: мм: сс'

CREATE VIEW v_DateFix
AS
   SELECT CAST([Start Date Local] AS DATETIME) AS StartDate
   FROM MyTable
GO    

Первоначально не получается: сообщение об ошибке

Сообщение 242, уровень 16, состояние3, строка 39
Преобразование типа данных nvarchar в тип данных datetime привело к значению, выходящему за пределы допустимого диапазона.

Поэтому я перенастроил языковые настройки

select * 
from sys.syslanguages 
where name = 'British'

-- Set default language to British 
EXEC sp_configure 'default language', 23;
GO

RECONFIGURE;
GO

Создать представление все еще выдает ту же ошибку.Я также попытался настроить язык по умолчанию на master и перезапустить сервер.Представление по-прежнему не может быть создано.

Я могу использовать это утверждение до оператора CREATE VIEW

SET LANGUAGE BRITISH;

Теперь представление можно создать.Однако перезапуск сервера или даже открытие нового окна запроса и выбор из представления по-прежнему выдает ошибку.Я не могу включить оператор SET LANGUAGE как часть представления.

Так как же заставить SQL Server Express V 14.0.1000 всегда использовать британские форматы дат?

1 Ответ

0 голосов
/ 26 апреля 2018

Вы всегда можете использовать что-то вроде этого:

SELECT CONVERT(DATETIME, '01/06/2018 09:30:15', 103)

103 указывает формат, как описано здесь

...