Myślę, że powinieneś zacząć od zrozumienia zaangażowanych typów danych. Typ danych "datetime" w PostgreSQL to w rzeczywistości znacznik czasu i istnieją dwa warianty:
. Wartość domyślna to z
i bez strefy czasowej
bez
.
Wewnętrznie PostgreSQL zawsze przechowuje znacznik czasu UTC. Same dane strefy czasowej nie w ogóle zapisane ze znacznikami czasu, ani ze strefą czasową, ani bez. To tylko dekoratory dla wejścia i wyjścia, które uwzględniają ustawienie strefy czasowej klienta.
Więcej szczegółowe wyjaśnienie, przykłady i linki znajdziesz w tej powiązanej odpowiedzi .