Je suis dans le fuseau horaire Europe/Berlin (+02), Postgresql est en cours d'exécution à l'UTC (+00). Je dois obtenir l'horodatage avec le fuseau horaire à la dernière date locale de minuit (la date du début du jour du jour actuel dans mon fuseau horaire).Postgres: obtenir l'horodatage local avec fuseau horaire du dernier minuit
donc mon résultat final serait quelque chose comme ça si nous avons 03/03/2013 14: 00: 00 + 02
2013-03-03 22:00:00+00
2013-03-04 00:00:00+02 // the same
J'ai essayé de cette date avec
SELECT TIMESTAMP 'today' AT TIME ZONE 'Europe/Berlin'
Malheureusement cela donne la mauvaise date (le jour précédent minuit) pendant 00:00 et 02:00 comme l'heure UTC est le jour précédent et semble aujourd'hui utiliser utc pour calculer le reste.
Si nous avons 03/03/2013 00h05 à Europe/Berlin ce sera de retour
2013-05-01 22:00:00+00
Si je veux avoir la bonne date que je dois utiliser
SELECT date_trunc('day', now() AT TIME ZONE 'Europe/Berlin') AT TIME ZONE 'Europe/Berlin';
2013-05-02 22:00:00+00
qui est correct, mais assez moche.
Y a-t-il une variante plus propre de cette commande?