Tanggal Anda sebenarnya adalah nilai numerik (float atau integer), disimpan dalam kolom char. Jadi, Anda perlu mengubahnya menjadi nilai numerik (dalam hal ini, menjadi float
) dulu, seperti:
select convert(datetime, CONVERT(float,date_column))
Nilai 41547.5
akan mengakibatkan:
`2013-10-02 12:00:00`
Argumen gaya, dalam kasus Anda 6
hanya diperlukan saat mengonversi dari atau ke tipe-char. Dalam hal ini tidak diperlukan dan akan diabaikan.
NB:Nilai float adalah jumlah hari sejak 1900-01-01
.
misalnya select convert(datetime, CONVERT(float,9.0))
=> 1900-01-10 00:00:00
; sama dengan select dateadd(day,9.0,'1900-01-01')
akan.
Bagian desimal dari angka juga sama dengan hari; jadi 0.5
adalah setengah hari / 12 jam.
misalnya select convert(datetime, CONVERT(float,.5))
=> 1900-01-01 12:00:00
. (Di sini perbandingan kami dengan dateadd tidak masuk akal, karena itu hanya berhubungan dengan bilangan bulat daripada float).