sql >> Base de Datos >  >> RDS >> Mysql

Simplemente convierta un número de 5 dígitos en la base de datos mysql a una fecha

Para pasar de los valores de Excel, intente esto:

select date('1899-12-30') + interval <number> days

Por ejemplo:

select date('1899-12-30') + interval 40000 days

Devuelve el 6 de julio de 2009, tal como lo hace en Excel.

En otras palabras, puede traer el valor como un número entero y luego hacer la conversión en SQL.

De hecho, estoy un poco sorprendido porque la fecha 0 en Excel es esencialmente el 0 de enero de 1900, que es el 31 de diciembre de 1899. Sospecho que hay un problema con la falta de año bisiesto en 1900. Excel tiene el valor de "60" representado como 29 de febrero de 1900. Esto es divertido, no me había dado cuenta de que Excel tenía este error.

Por lo tanto, el código anterior funciona para todos los valores superiores a 61.