Uw datum is eigenlijk een numerieke waarde (float of integer), opgeslagen in een char-kolom. Je moet het dus converteren naar een numerieke waarde (in dit geval naar float ) eerst, zoals:
select convert(datetime, CONVERT(float,date_column))
Een waarde van 41547.5 zal resulteren in:
`2013-10-02 12:00:00`
Het stijlargument, in jouw geval 6 is alleen nodig bij het converteren van of naar char-types. In dit geval is het niet nodig en wordt het genegeerd.
NB:De float-waarde is het aantal dagen sinds 1900-01-01 .
bijv. select convert(datetime, CONVERT(float,9.0)) => 1900-01-10 00:00:00; hetzelfde als select dateadd(day,9.0,'1900-01-01') zou.
Het decimale deel van het getal komt ook overeen met dagen; dus 0.5 is een halve dag / 12 uur.
bijv. select convert(datetime, CONVERT(float,.5)) => 1900-01-01 12:00:00 . (Hier is onze vergelijking met dateadd niet logisch, aangezien dat alleen gaat over gehele getallen in plaats van floats).