Beide aannames zijn fout:
PostgreSQL slaat een timestamp with time zone
op als 8-byte geheel getal dat de offset van 2000-01-01 00:00:00 UTC
. bevat in microseconden.
Het slaat dus noch de tijdzone op, noch is de precisie 1 minuut.
Bij conversie naar een tekenreeks wordt de tijdstempel opgemaakt volgens de huidige instelling van de timezone
parameter.
Dus als u de tijdzone apart moet opslaan als u deze moet onthouden en de AT TIME ZONE
moet gebruiken expressie om de tijdstempel naar de juiste tijdzone te converteren.
U vraagt om documentatiereferenties. Een deel daarvan is hier :
/*
* 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.)
In hetzelfde bestand vind je
/* 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) */