varchar
データ型の値をからに変換する SQL を実行すると、次のエラーが発生しますdatetime
。
メッセージ 242、レベル 16、状態 3、行 1 varchar データ型を datetime データ型に変換した結果、範囲外の値になりました。
データをチェックしましたが、何もおかしなところは見当たりません。以下のチェックを実行しましたが、すべて結果が返されませんでした。
SELECT [Date] from table where [DATe] is null
SELECT [Date] from table where [DATe] = ''
SELECT [Date] from table where LEN([date])> 10
SELECT [Date] from table where LEN([date])< 10
SELECT top 100 [Date] , SUBSTRING([date],4,2) from [table where convert(int, SUBSTRING([date],4,2)) < 1 or convert(int, SUBSTRING([date],4,2)) > 12
SELECT top 100 [Date] , SUBSTRING([date],1,2) from table where convert(int, SUBSTRING([date],4,2)) < 1 or convert(int, SUBSTRING([date],4,2)) > 31
他に調べる価値のあること、あるいはこの問題に関してアドバイスや助けになるものはありますか? 原因がわかりません。
ベストアンサー1
1 週間前にも同じ問題に直面しました。問題はタイム ゾーンの設定にあります。mm/dd/yyyy などの他の形式で指定してください (通常は機能します)。
日付を次のように指定する2013年12月30日私の場合はエラーが発生しました。ただし、mm/dd/yyyy 形式で指定すると機能しました。
入力を変換する必要がある場合は、メソッドを調べてみてくださいCONVERT
。構文は
CONVERT(VARCHAR,@your_date_Value,103)
CONVERT(VARCHAR, '12/30/2013', 103)
仕上げ103日時形式です。
変換形式と詳細については、このリンクを参照してください。https://www.w3schools.com/sql/func_sqlserver_convert.asp