PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jakie informacje o strefie czasowej przechowuje PostgreSQL?

Oba twoje założenia są błędne:

PostgreSQL przechowuje timestamp with time zone jako 8-bajtowa liczba całkowita zawierająca przesunięcie od 2000-01-01 00:00:00 UTC w mikrosekundach.

Nie przechowuje więc ani strefy czasowej, ani precyzji 1 minuty.

Po konwersji na ciąg znaków znacznik czasu jest formatowany zgodnie z bieżącym ustawieniem timezone parametr.

Więc jeśli musisz przechowywać strefę czasową osobno, jeśli chcesz ją zapamiętać i użyj AT TIME ZONE wyrażenie do konwersji znacznika czasu na właściwą strefę czasową.

Pytasz o referencje dokumentacji. Częścią tego jest tutaj :

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

W tym samym pliku znajdziesz

/* 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak za pomocą homebrew obniżyć wersję postgresql z 10.1 do 9.6 w systemie Mac OS?

  2. Przenieś dane SPATIAL z Oracle do Postgresql

  3. Intel SSD, teraz poza sh..err, zawstydzona lista

  4. Jaki jest najlepszy sposób kopiowania podzbioru wierszy tabeli z jednej bazy danych do drugiej w Postgresie?

  5. sqlalchemy i automatyczne przyrosty z postgresql