Jeg har desværre ikke svaret på dit direkte spørgsmål. Jeg kan dog foreslå noget, der er værd at overveje, som helt vil undgå alle tidszoneproblemer i databasen. Hvis det er muligt, anbefaler jeg blot at bruge BIGINT
felter til lagring af datoer med Java. Du gemmer bare den long
af antallet af millisekunder siden epoken, f.eks. fra System.currentTimeMillis()
eller Date.getTime()
.
Derefter styres fortolkningen af tidszonen for en dato altid i Java, som er god til at bruge det epokebaserede tal. Det gør det lidt mere involveret at forespørge databasen direkte om en dato uden for Java, men det er ikke for svært og plejer at være det værd IMO:
SELECT FROM_UNIXTIME(date_field / 1000) FROM table;