For at gå fra Excel-værdier, prøv dette:
select date('1899-12-30') + interval <number> days
For eksempel:
select date('1899-12-30') + interval 40000 days
Returnerer 6. juli 2009, ligesom det gør i Excel.
Du kan med andre ord bringe værdien ind som et heltal og derefter udføre konverteringen i SQL.
Jeg er faktisk lidt overrasket, fordi 0-datoen i Excel i det væsentlige er 0. januar 1900, hvilket er den 31. december 1899. Jeg formoder, at der er et problem med manglen på skudår i 1900. Excel har værdien "60" repræsenteret som 29. feb. 1900. Det er sjovt, jeg havde ikke indset, at Excel havde denne fejl.
Så ovenstående kode virker for alle værdier større end 61.