PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Каква информация за часовата зона съхранява PostgreSQL?

И двете ви предположения са грешни:

PostgreSQL съхранява timestamp with time zone като 8-байтово цяло число, което съдържа отместването от 2000-01-01 00:00:00 UTC в микросекунди.

Така че нито съхранява часовата зона, нито точността е 1 минута.

При преобразуване в низ клеймото за време се форматира според текущата настройка на timezone параметър.

Така че, ако трябва да съхраните часовата зона отделно, ако трябва да я запомните и използвайте AT TIME ZONE израз за преобразуване на клеймото за време в правилната часова зона.

Искате препратки към документация. Част от това е тук :

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

В същия файл намирате

/* 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. Как да нулирате последователността в postgres и да попълните колоната за идентификатор с нови данни?

  2. Как да променя типа на колоната в Heroku?

  3. Премахване и създаване на ENUM със секвенизиране правилно?

  4. Не мога да свържа postgreSQL с psycopg2

  5. Възможно ли е да промените дизайна на таблицата на PostgreSQL с помощта на LibreOffice Base?