sql >> Databasteknik >  >> RDS >> Mysql

datum tid rätt i appen men fel i mysql [tidszon]

Vilka typer av kolumner finns i MySQL? Jag misstänker att det är DATETIME. Den här typen lagrar inte "moment in time", den lagrar "timme på klockan", så det kan betyda olika ögonblick i olika tidszoner.

När MySQL-drivrutinen skriver java.util.Date till DATETIME-kolumnen måste den välja någon tidszon för att skriva "timme på klockan", eftersom samma java.util.Date kan betyda olika timmar i olika tidszoner. Den lagrar timmar som i MySQL-serverns lokala tidszon.

LocalDateTime har inte detta problem, eftersom det är som DATETIME. Det representerar timme på en klocka, inte ögonblick i tid, så år/månad/dag-timme/minut/sekund lagras bara i databasen. Meddelande i vilolägesloggen LocalDateTime ges som den är, medan det finns en tidszon ("CST") bredvid Datum.

I allmänhet är det bra att alltid lagra tid i UTC, så använd DateTime, inte Date eller LocalDateTime. DateTime med jadira converter lagrar/läser alltid DATETIME som UTC.




  1. MySQL lagrad procedur orsakar problem?

  2. Postgres tid med tidszonslikhet

  3. Vilken är den bästa typ 4 Oracle JDBC-drivrutinen?

  4. Viktig PostgreSQL-övervakning - Del 1