Ihr Datum ist eigentlich ein numerischer Wert (Float oder Integer), der in einer char-Spalte gespeichert ist. Sie müssen ihn also in einen numerischen Wert umwandeln (in diesem Fall in float
) zuerst wie:
select convert(datetime, CONVERT(float,date_column))
Ein Wert von 41547.5
ergibt:
`2013-10-02 12:00:00`
Das Stilargument, in Ihrem Fall 6
ist nur notwendig, wenn von oder zu char-Typen konvertiert wird. In diesem Fall wird es nicht benötigt und wird ignoriert.
Hinweis:Der Float-Wert ist die Anzahl der Tage seit 1900-01-01
.
z.B. select convert(datetime, CONVERT(float,9.0))
=> 1900-01-10 00:00:00
; dasselbe wie select dateadd(day,9.0,'1900-01-01')
würde.
Der Dezimalteil der Zahl entspricht ebenfalls Tagen; also 0.5
ist ein halber Tag / 12 Stunden.
z.B. select convert(datetime, CONVERT(float,.5))
=> 1900-01-01 12:00:00
. (Hier macht unser Vergleich mit dateadd keinen Sinn, da es sich hier nur um Integer und nicht um Floats handelt).