0

文字列の日付/時刻を既存のデータから 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 で常に英国の日付形式を使用するにはどうすればよいでしょうか?

4

1 に答える 1