Вашата дата всъщност е числова стойност (float или integer), съхранена в колона char. Така че трябва да го преобразувате в числова стойност (в този случай в float ) първо, като:
select convert(datetime, CONVERT(float,date_column))
Стойност 41547.5 ще доведе до:
`2013-10-02 12:00:00`
Аргументът стил във вашия случай 6 е необходимо само при преобразуване от или към char-типове. В този случай не е необходимо и ще бъде игнорирано.
NB:Плаващата стойност е броят дни от 1900-01-01 .
напр. select convert(datetime, CONVERT(float,9.0)) => 1900-01-10 00:00:00; същото като select dateadd(day,9.0,'1900-01-01') бих.
Десетичната част на числото също се равнява на дни; така 0.5 е половин ден / 12 часа.
напр. select convert(datetime, CONVERT(float,.5)) => 1900-01-01 12:00:00 . (Тук нашето сравнение с dateadd няма смисъл, тъй като то се занимава само с цели числа, а не с плаващи числа).