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.