Я пытаюсь преобразовать строковую дату / время из существующих данных в тип 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 всегда использовать британские форматы дат?