sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Qué información de zona horaria almacena PostgreSQL?

Ambas suposiciones son incorrectas:

PostgreSQL almacena una timestamp with time zone como entero de 8 bytes que contiene el desplazamiento desde 2000-01-01 00:00:00 UTC en microsegundos.

Por lo que no almacena ni la zona horaria, ni la precisión es de 1 minuto.

Tras la conversión a una cadena, la marca de tiempo se formatea de acuerdo con la configuración actual de la timezone parámetro.

Entonces, si tiene que almacenar la zona horaria por separado, si necesita recordarla y usar AT TIME ZONE expresión para convertir la marca de tiempo a la zona horaria adecuada.

Pides referencias de documentación. Parte de eso es aquí :

/*
 * Timestamp represents absolute time.
[...]
 * Timestamps, as well as the h/m/s fields of intervals, are stored as
 * int64 values with units of microseconds.  (Once upon a time they were
 * double values with units of seconds.)

En el mismo archivo, encuentra

/* Julian-date equivalents of Day 0 in Unix and Postgres reckoning */
#define UNIX_EPOCH_JDATE        2440588 /* == date2j(1970, 1, 1) */
#define POSTGRES_EPOCH_JDATE    2451545 /* == date2j(2000, 1, 1) */