PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Quais informações de fuso horário o PostgreSQL armazena?


Ambas as suas suposições estão erradas:

PostgreSQL armazena um timestamp with time zone como inteiro de 8 bytes que contém o deslocamento de 2000-01-01 00:00:00 UTC em microssegundos.

Portanto, ele não armazena o fuso horário, nem a precisão de 1 minuto.

Após a conversão para uma string, o timestamp é formatado de acordo com a configuração atual do timezone parâmetro.

Então, se você tiver que armazenar o fuso horário separadamente, se precisar se lembrar dele, use o AT TIME ZONE expressão para converter o carimbo de data/hora para o fuso horário adequado.

Você pede referências de documentação. Parte disso é aqui :
/*
 * 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.)

No mesmo arquivo, você encontra
/* 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) */