日付は実際には数値 (float または integer) であり、char 列に格納されます。したがって、数値に変換する必要があります (この場合は float
に) ) まず、次のように:
select convert(datetime, CONVERT(float,date_column))
41547.5
の値 結果:
`2013-10-02 12:00:00`
スタイル引数、あなたの場合は 6
文字型から、または文字型に変換する場合にのみ必要です。この場合は不要であり、無視されます。
注意:float 値は、1900-01-01
からの日数です。 .
例えばselect convert(datetime, CONVERT(float,9.0))
=> 1900-01-10 00:00:00
; select dateadd(day,9.0,'1900-01-01')
と同じ
数値の小数部分も日数に相当します。だから 0.5
半日/12時間です。
例えばselect convert(datetime, CONVERT(float,.5))
=> 1900-01-01 12:00:00
. (ここでの dateadd との比較は意味がありません。これは浮動小数点ではなく整数のみを扱うためです)。