sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvilke tidszoneoplysninger gemmer PostgreSQL?

Begge dine antagelser er forkerte:

PostgreSQL gemmer et timestamp with time zone som 8-byte heltal, der indeholder offset fra 2000-01-01 00:00:00 UTC i mikrosekunder.

Så den gemmer hverken tidszonen eller præcisionen 1 minut.

Ved konvertering til en streng formateres tidsstemplet i overensstemmelse med den aktuelle indstilling for timezone parameter.

Så hvis du skal gemme tidszonen separat, hvis du skal huske den og bruge AT TIME ZONE udtryk for at konvertere tidsstemplet til den korrekte tidszone.

Du beder om dokumentationsreferencer. En del af det er her :

/*
 * 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 samme fil finder 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. Sådan bruger du sendirect()-metoden til at sende søgeforespørgsel fra servlet til jsp

  2. SQL Server:Sæt lagret procedureresultatsæt i en tabelvariabel uden at angive dets skema

  3. Tomt tegn ignoreret i where-sætning

  4. Sådan opretter du en tabel fra udvalgt forespørgselsresultat i SQL Server 2008