私は2つのdatetime値をvarcharsとして挿入しています。関連する列のデータ型は両方ともDATETIME
です(列名とは異なり、PERFORMANCEDATE
はDATETIME
で、PERFORMANCETIME
です)。テストデータはツールを使用して生成されるため、何千行もあるので変更することはできません。varcharからdatetimeへの変換に失敗しました。 2つの類似した構造の日付ですが、1つだけが渡されます
SET DATEFORMAT ymd
GO
INSERT INTO CONCERT (PERFORMANCEDATE, TOWNNAME, PERFORMANCETIME, LOCATION, TITLE)
VALUES ('1993-5-2 13:26:22', 'X', '1604-9-13 12:0:48', 'X', 'X')
INSERT INTO CONCERT (PERFORMANCEDATE, TOWNNAME, PERFORMANCETIME, LOCATION, TITLE)
VALUES ('1102-11-26 9:4:56', 'X', '1534-2-10 11:34:36', 'X', 'X')
最初の挿入が正常に動作するが、第2のインサートは
日時データ型にvarcharデータ型の変換は、範囲外の値をもたらし、このエラーをスロー。
なぜ2番目のエラーは失敗しますか?実際、最初のもの以外のすべての挿入物は失敗します。
私は最初のものも同様に失敗しません驚いています。 SQL Serverの日時は、1753年1月1日から9999年12月31日の範囲です。https://docs.microsoft.com/en-us/sql/t-sql/data-types/datetime-transact-sql – hatchet
開始日年が実際に問題になるかもしれない、私はそれを調べます。 – Skere
別の問題はあなたの時間のフォーマットになります:分だけ1桁。 – Nikolaus