En primer lugar, asegúrese de definir sus columnas y variables de marca de tiempo como TIMESTAMP WITH TIME ZONE
(o timestamptz
para abreviar). En PostgreSQL, esto en realidad no hace que se guarde ninguna marca de tiempo; pero lo convierte en un punto fijo en el tiempo, almacenado en UTC. Puedes verlo AT TIME ZONE
de su elección con una semántica limpia. TIMESTAMP WITHOUT TIME ZONE
(que es lo que obtienes si solo dices TIMESTAMP
) es no un punto fijo en el tiempo hasta que se resuelve en una zona horaria y, por lo tanto, es mucho más difícil trabajar con él.
La página de documentación que cita con respecto a las zonas horarias es de una versión muy antigua de PostgreSQL que dejó de ser compatible. Quizás esta página te sea de más ayuda:
http://www.postgresql.org/docs/current /interactive/datetime-config-files.html