sql >> Databasteknik >  >> RDS >> PostgreSQL

Vilken tidszonsinformation lagrar PostgreSQL?

Båda dina antaganden är felaktiga:

PostgreSQL lagrar en timestamp with time zone som 8-byte heltal som innehåller offset från 2000-01-01 00:00:00 UTC i mikrosekunder.

Så den lagrar varken tidszonen eller precisionen 1 minut.

Vid konvertering till en sträng formateras tidsstämpeln enligt den aktuella inställningen för timezone parameter.

Så om du måste lagra tidszonen separat om du behöver komma ihåg den och använda AT TIME ZONE uttryck för att konvertera tidsstämpeln till rätt tidszon.

Du ber om dokumentationsreferenser. En del av det är här :

/*
 * 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.)

I samma fil hittar du

/* 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) */



  1. Hur man konsekvent tjänar en Microsoft Access MVP Award

  2. Hur kör man multipla insert-fråga i SQL med PHP på en gång?

  3. Använd variabel med TOP i select-satsen i SQL Server utan att göra den dynamisk

  4. Mysql Jämför två datetime-fält