Untuk beralih dari nilai Excel, coba ini:
select date('1899-12-30') + interval <number> days
Misalnya:
select date('1899-12-30') + interval 40000 days
Mengembalikan 6 Juli 2009, sama seperti di Excel.
Dengan kata lain, Anda dapat memasukkan nilai sebagai bilangan bulat dan kemudian melakukan konversi dalam SQL.
Saya sebenarnya sedikit terkejut karena tanggal 0 di Excel pada dasarnya adalah 0, 1900, yaitu 31 Desember 1899. Saya menduga ada masalah dengan tidak adanya tahun kabisat pada tahun 1900. Excel memiliki nilai "60" direpresentasikan sebagai 29 Februari 1900. Ini lucu, saya tidak menyadari bahwa Excel memiliki bug ini.
Jadi, kode di atas berfungsi, untuk semua nilai yang lebih besar dari 61.