sql >> Database >  >> RDS >> Mysql

MySQL from_unixtime na 2038-01-19?

Een tijdelijke oplossing kan zijn om DATE_ADD . te gebruiken , maar ik weet niet zeker hoe het zich qua prestaties gedraagt:

SELECT DATE_ADD(FROM_UNIXTIME(0), INTERVAL 2147483647 SECOND); //2038-01-19 04:14:07
SELECT DATE_ADD(FROM_UNIXTIME(0), INTERVAL 2147483648 SECOND); //2038-01-19 04:14:08
...
SELECT DATE_ADD(FROM_UNIXTIME(0), INTERVAL 4147483647 SECOND); //2101-06-06 07:47:27

Dus voor nu gebruik ik

...
CASE 
  WHEN `javaTimeStampColumn` > 2147483647 THEN
    CONVERT_TZ(DATE_ADD(FROM_UNIXTIME(0), INTERVAL `javaTimeStampColumn`/1000 SECOND),'+00:00','+00:00')
  ELSE  
    CONVERT_TZ(FROM_UNIXTIME(`javaTimeStampColumn`/1000), '+00:00','+00:00')
END as ts
FROM table
...

die de impact op de prestaties zou moeten minimaliseren, als die er is.




  1. Standaardwaarde invoegen als huidige datum + 30 dagen in MySQL

  2. Records invoegen in een MySQL-tabel met Java

  3. Gebruik Cloud Formation-sjablonen om MySQL-instanties op RDS te laten draaien

  4. Versleuteling gebruiken om PostgreSQL-databasebeveiliging te versterken