日付は実際には数値 (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 との比較は意味がありません。これは浮動小数点ではなく整数のみを扱うためです)。