Pour partir des valeurs Excel, essayez ceci :
select date('1899-12-30') + interval <number> days
Par exemple :
select date('1899-12-30') + interval 40000 days
Renvoie le 6 juillet 2009, comme dans Excel.
En d'autres termes, vous pouvez apporter la valeur sous forme d'entier, puis effectuer la conversion en SQL.
Je suis en fait un peu surpris car la date 0 sur Excel est essentiellement le 0 janvier 1900, soit le 31 décembre 1899. Je soupçonne qu'il y a un problème avec l'absence d'année bissextile en 1900. Excel a la valeur de "60" représenté comme le 29 février 1900. C'est amusant, je n'avais pas réalisé qu'Excel avait ce bug.
Ainsi, le code ci-dessus fonctionne, pour toutes les valeurs supérieures à 61.