sql >> Database >  >> RDS >> PostgreSQL

Welke tijdzone-informatie slaat PostgreSQL op?

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



  1. Het databasewachtwoord wijzigen

  2. Verschillen tussen MySql en MySqli in PHP

  3. FIND_IN_SET met twee strings

  4. talend etl orakelfout 0 rij invoegen