För att gå från Excel-värden, prova detta:
select date('1899-12-30') + interval <number> days
Till exempel:
select date('1899-12-30') + interval 40000 days
Returnerar 6 juli 2009, precis som det gör i Excel.
Med andra ord kan du ta in värdet som ett heltal och sedan göra konverteringen i SQL.
Jag är faktiskt lite förvånad eftersom 0-datumet i Excel i huvudsak är 0 januari 1900, vilket är 31 december 1899. Jag misstänker att det finns ett problem med avsaknaden av skottår 1900. Excel har värdet "60" representerad som 29.1900 feb. Det här är roligt, jag hade inte insett att Excel hade det här felet.
Så ovanstående kod fungerar för alla värden större än 61.