Aby przejść z wartości Excela, wypróbuj to:
select date('1899-12-30') + interval <number> days
Na przykład:
select date('1899-12-30') + interval 40000 days
Zwraca 6 lipca 2009 r., tak jak w programie Excel.
Innymi słowy, możesz wprowadzić wartość jako liczbę całkowitą, a następnie dokonać konwersji w SQL.
Właściwie jestem trochę zaskoczony, ponieważ data 0 w programie Excel to w zasadzie 0 stycznia 1900, czyli 31 grudnia 1899. Podejrzewam, że istnieje problem z brakiem roku przestępnego w 1900. Excel ma wartość „60” reprezentowany jako 29 lutego 1900. To zabawne, nie zdawałem sobie sprawy, że Excel ma ten błąd.
Tak więc powyższy kod działa dla wszystkich wartości większych niż 61.