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 № 1Czy 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