Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Basta converter o número de 5 dígitos no banco de dados mysql para uma data


Para ir dos valores do Excel, tente isto:
select date('1899-12-30') + interval <number> days

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

Retorna 6 de julho de 2009, exatamente como no Excel.

Em outras palavras, você pode trazer o valor como um inteiro e depois fazer a conversão em SQL.

Na verdade, estou um pouco surpreso porque a data 0 no Excel é essencialmente 0 de janeiro de 1900, que é 31 de dezembro de 1899. Suspeito que haja um problema com a falta de ano bissexto em 1900. O Excel tem o valor de "60" representado como 29 de fevereiro de 1900. Isso é divertido, eu não tinha percebido que o Excel tinha esse bug.

Portanto, o código acima funciona, para todos os valores maiores que 61.