2012-01-04 17 views
0

私は その後、 select cast('12/01/2010' as datetime)のような日時に文字列の日付をキャストしようとした場合、それは日時変換の問題

に動作しますが、私は select cast('22/01/2010' as datetime)のようにキャストしようとした場合、それはエラーを与えています。再び

私は select cast('2010/12/01' as datetime)のような日時に文字列の日付をキャストしようとした場合、それは に動作しますが、私は select cast('2010/25/01' as datetime)のようにキャストしようとした場合、それはエラーを与えています。私の要件は、どのような方法でも、ユーザー入力の日付が正常にdatetimeに変換される必要があります。私にあなたのケースで最適なソリューション

答えて

1

を教えてくださいSQL Serverは、前提と日付のフォーマットIDのmm/dd/yyyy - 米国のフォーマット、あなたが変換するフランス語の形式を使用するので、使用したい

select CONVERT(DATETIME, '12/01/2010', 103) 

代わりにあなたがいるためそこには、このような月の番号にエラーが発生します - 22

最善の解決策を文字列として日時を渡す - (タイムゾーンなし)ISO形式を短いを使用する:

yyyyMMdd HH:mm:ss.ffff 
1

私は「20111231」形式の固定を使用することをお勧めいたします。あなたは、キャスト、変換、または同様のコマンドを使用する必要はありません。