web-dev-qa-db-ja.com

SQL Serverで「dd / mm / yyyy」文字列を日時に変換する方法

私はこれを試しました

SELECT convert(datetime, '23/07/2009', 111)

しかし、このエラーが発生しました

The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.

しかしながら

SELECT convert(datetime, '07/23/2009', 111)

でも大丈夫

最初のものを修正するには?

44
Sim

CONVERTの最後の引数は、解析に使用される形式を決定するようです。 CONVERTのMSDNドキュメント を参照してください。

111-使用しているのは日本yy/mm/ddです。

探しているのは103、つまりdd/mm/yyyyです。

だからあなたは試してみてください:

 SELECT convert(datetime, '23/07/2009', 103)
87

試してください:

SELECT convert(datetime, '23/07/2009', 103)

これはイギリス/フランスの標準です。

10
Alex
SELECT convert(datetime, '23/07/2009', 103)
0
user6434845
SELECT convert(varchar(10), '23/07/2009', 111)
0
RNT665

SQL Serverはデフォルトでmdy日付形式を使用するため、以下が機能します。

SELECT convert(datetime, '07/23/2009', 111)

これは機能しません:

SELECT convert(datetime, '23/07/2009', 111)

私自身、mdydmyの両方の日付形式を処理できる単一のクエリを作成するのに苦労しています。

ただし、3番目の日付形式ymdで問題ありません。

0
Qwerty-uiop