La tua data è in realtà un valore numerico (float o intero), memorizzato in una colonna di caratteri. Quindi, devi convertirlo in un valore numerico (in questo caso, in float ) prima, come:
select convert(datetime, CONVERT(float,date_column))
Un valore di 41547.5 risulterà in:
`2013-10-02 12:00:00`
L'argomento di stile, nel tuo caso 6 è necessario solo durante la conversione da o in tipi char. In questo caso non è necessario e verrà ignorato.
NB:Il valore float è il numero di giorni trascorsi da 1900-01-01 .
per esempio. select convert(datetime, CONVERT(float,9.0)) => 1900-01-10 00:00:00; lo stesso di select dateadd(day,9.0,'1900-01-01') lo farebbe.
Anche la parte decimale del numero corrisponde ai giorni; quindi 0.5 è mezza giornata / 12 ore.
per esempio. select convert(datetime, CONVERT(float,.5)) => 1900-01-01 12:00:00 . (Qui il nostro confronto con dateadd non ha senso, dal momento che si tratta solo di numeri interi anziché di float).