日付に問題があります。問題は、形式が異なっていても、ISDATE によって有効な日付が返されることです。ただし、INSERT NULL は、 2013 年 8 月 28 日または 2013 年 8 月 28日のようにフォーマットされていない任意の日付フィールドです。
これは国際用です。また、米国でのみ使用できます。つまり、2013 年 8 月 8 日は 2011 年 8 月 8 日を意味し、2011-08-08 としてキャストされます。
フォーマットを確認する方法がわかりません。CASE WHEN全体を実行できます。
私はこのように遊んでみました:
DECLARE @d DATETIME = '10/01/2011';
SELECT CASE WHEN @d != FORMAT ( @d, 'yyyy/MM/dd', 'en-US' ) THEN @d ELSE NULL END
現在列にある日付は、そのような形式です。2013 年 8 月 28 日または 2013 年 8 月 28 日 フォーマットが正しければ、キャストを行います。
ありがとう!