文字列の日付/時刻を既存のデータから T-SQLDATETIME
型に変換しようとしています。文字列は、英国形式の 'dd/MM/yyyy HH:mm:ss' です。
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 で常に英国の日付形式を使用するにはどうすればよいでしょうか?