Votre date est en fait une valeur numérique (float ou entier), stockée dans une colonne char. Donc, vous devez le convertir en une valeur numérique (dans ce cas, en float ) d'abord, comme :
select convert(datetime, CONVERT(float,date_column))
Une valeur de 41547.5 entraînera :
`2013-10-02 12:00:00`
L'argument de style, dans votre cas 6 n'est nécessaire que lors de la conversion depuis ou vers des types char. Dans ce cas, il n'est pas nécessaire et sera ignoré.
NB :La valeur flottante est le nombre de jours depuis le 1900-01-01 .
par exemple. select convert(datetime, CONVERT(float,9.0)) => 1900-01-10 00:00:00; identique à select dateadd(day,9.0,'1900-01-01') le ferait.
La partie décimale du nombre équivaut également à des jours ; donc 0.5 est une demi-journée / 12 heures.
par exemple. select convert(datetime, CONVERT(float,.5)) => 1900-01-01 12:00:00 . (Ici, notre comparaison avec dateadd n'a pas de sens, car cela ne traite que des entiers plutôt que des flottants).