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).