/ / Strefa czasowa Postgres UTC a lokalna strefa czasowa - postgresql, datetime, strefa czasowa, znacznik czasu, znacznik czasu ze strefą czasową

Strefa czasowa Postgres UTC kontra lokalna strefa czasowa - postgresql, datetime, strefa czasowa, znacznik czasu, sygnatura czasowa-z-strefą czasową

Korzystam z PostgreSQL 10. Mam kilka timestamp with timezone kolumny w 3 tabelach.

Powinienem użyć UTC jako moją domyślną strefę czasową w postgresql.conf i ciągle się zmienia Europe Athens w każdej sesji?

Lub mieć Europe Athens jak domyślnie, nigdy nie muszę się przekształcać, ale czy inne aplikacje będą miały dostęp do tej samej bazy danych, będą musiały przejść do swojej strefy czasowej?

Co jest mądrzejsze? Chyba muszę rozważyć, czy ustawienie strefy czasowej w sesji wpływa na szybkość zapytania.

Odpowiedzi:

1 dla odpowiedzi № 1

Czy powinienem używać UTC jako mojej domyślnej strefy czasowej w postgresql.conf i ciągle zmienia się w Europę Ateny na każdej sesji?

Nie, jest to strata wysiłku, ponieważ baza danych i tak przechowuje znaczniki czasu w UTC, niezależnie od tego, co wybierzesz dla domyślnej strefy czasowej.

Dla znacznika czasu ze strefą czasową wewnętrznieprzechowywana wartość jest zawsze w UTC (Universal Coordinated Time, tradycyjnie znany jako Greenwich Mean) Czas, GMT). Wartość wejściowa, dla której określono jawną strefę czasową, to przeliczone na UTC przy użyciu odpowiedniego przesunięcia dla tej strefy czasowej. Gdyby w ciągu wejściowym nie podano żadnej strefy czasowej, wówczas zakłada się, że tak w strefie czasowej wskazanej przez system Strefa czasowa parametr i jest konwertowane na UTC za pomocą przesunięcia strefy czasowej.

Źródło: https://www.postgresql.org/docs/10/static/datatype-datetime.html