Supongo que debería comenzar por comprender los tipos de datos involucrados. El tipo de datos "datetime" en PostgreSQL es en realidad timestamp
y hay dos variantes:with
y without time zone
. El valor predeterminado es without
.
Internamente, PostgreSQL siempre almacena una marca de tiempo UTC. Los datos de la zona horaria en sí no guardado en absoluto con marcas de tiempo, ni con ni sin zona horaria. Esos son solo decoradores para entrada y salida que se adaptan a la configuración de zona horaria del cliente.
Encuentra más explicación detallada, ejemplos y enlaces en esta respuesta relacionada .