Съжалявам, че нямам отговор на директния ви въпрос. Мога обаче да предложа нещо, което си струва да се обмисли, което ще избегне напълно всички проблеми с часовите зони в базата данни. Ако е възможно, препоръчвам просто да използвате BIGINT
полета за съхраняване на дати с Java. Вие просто съхранявате long
от броя милисекунди от епохата, напр. от System.currentTimeMillis()
или Date.getTime()
.
След това интерпретацията на часовата зона за дата винаги се управлява в Java, което е добро при използването на числото, базирано на епоха. Прави малко по-ангажиращо директното запитване до базата данни за дата извън Java, но не е твърде трудно и си струва IMO:
SELECT FROM_UNIXTIME(date_field / 1000) FROM table;