sql >> Database teknologi >  >> RDS >> Mysql

Du skal blot konvertere et 5-cifret tal i mysql-databasen til en dato

For at gå fra Excel-værdier, prøv dette:

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

For eksempel:

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

Returnerer 6. juli 2009, ligesom det gør i Excel.

Du kan med andre ord bringe værdien ind som et heltal og derefter udføre konverteringen i SQL.

Jeg er faktisk lidt overrasket, fordi 0-datoen i Excel i det væsentlige er 0. januar 1900, hvilket er den 31. december 1899. Jeg formoder, at der er et problem med manglen på skudår i 1900. Excel har værdien "60" repræsenteret som 29. feb. 1900. Det er sjovt, jeg havde ikke indset, at Excel havde denne fejl.

Så ovenstående kode virker for alle værdier større end 61.



  1. Nyt i PostgreSQL 12:Genererede kolonner

  2. Hvorfor SQL Server DATETIME-typen sparer tid i tikker på 1/300 af et sek?

  3. jQuery Autofuldførelse Mysql PHP

  4. Hvordan specificerer du IN-sætning i en dynamisk forespørgsel ved hjælp af en variabel?