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

Przechowywanie strefy czasowej w znaczniku czasu typu danych ze strefą czasową

To tylko nieporozumienie wynikające z nieco mylącej nazwy typu. Sama strefa czasowa w ogóle nie jest przechowywana . Działa po prostu jako przesunięcie, aby obliczyć znacznik czasu UTC (dane wejściowe), który jest faktycznie przechowywany. Lub jako dekorator na wyświetlaczu znacznika czasu zgodnie z bieżącą lub podaną strefą czasową (wyjście). To wszystko zgodnie ze standardem SQL.

Zapisywany jest tylko punkt w czasie, brak informacji o strefie. Dlatego wystarczy 64 bity informacji. Znacznik czasu jest wyświetlany klientowi zgodnie z bieżącym ustawieniem strefy czasowej sesji.

Szczegóły:

  • Całkowite ignorowanie stref czasowych w Rails i PostgreSQL

Ponadto, odkąd Jon o tym wspomniał, time with time zone jest zdefiniowany w standardzie SQL i tym samym zaimplementowany w Postgresie, ale odradza się jego stosowanie:

time with time zone jest zdefiniowany przez standard SQL, ale definicja wykazuje właściwości, które prowadzą do wątpliwej użyteczności.

Jest to z natury niejednoznaczny typ, który nie radzi sobie właściwie z czasem letnim.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL wybierz elementy, w których suma pola jest mniejsza niż N

  2. Jaki jest najbardziej elegancki sposób przechowywania znacznika czasu za pomocą nanosec w postgresql?

  3. Obsługa schematów Postgres przez SQLAlchemy

  4. Czy są jakieś opcje łączenia tabeli dla skojarzeń wiele-do-wielu?

  5. Powolne proste zapytanie o aktualizację w bazie danych PostgreSQL z 3 milionami wierszy