Beide Annahmen sind falsch:
PostgreSQL speichert einen timestamp with time zone
als 8-Byte-Ganzzahl, die den Offset von 2000-01-01 00:00:00 UTC
enthält in Mikrosekunden.
Es speichert also weder die Zeitzone, noch ist die Genauigkeit 1 Minute.
Bei der Konvertierung in einen String wird der Zeitstempel entsprechend der aktuellen Einstellung der timezone
formatiert Parameter.
Wenn Sie also die Zeitzone separat speichern müssen, müssen Sie sich daran erinnern und den AT TIME ZONE
verwenden Ausdruck, um den Zeitstempel in die richtige Zeitzone umzuwandeln.
Sie fragen nach Dokumentationshinweisen. Ein Teil davon ist 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 derselben Datei finden Sie
/* 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) */