Dit is slechts een misverstand dat voortkomt uit de enigszins misleidende typenaam. De tijdzone zelf wordt helemaal niet opgeslagen . Het fungeert alleen als offset om een UTC-tijdstempel (invoer) te berekenen, die daadwerkelijk wordt opgeslagen. Of als decorateur in de weergave van een tijdstempel volgens de huidige of gegeven tijdzone (uitvoer). Dat is allemaal volgens de SQL-standaard.
Alleen het tijdstip wordt opgeslagen, geen zone-informatie. Daarom is 64 bit informatie voldoende. Het tijdstempel wordt weergegeven aan de klant volgens de huidige tijdzone-instelling van de sessie.
Details:
- Tijdzones volledig negeren in Rails en PostgreSQL
En aangezien Jon het noemde, time with time zone
is gedefinieerd in de SQL-standaard en dus geïmplementeerd in Postgres, maar het gebruik ervan wordt afgeraden:
time with time zone
wordt gedefinieerd door de SQL-standaard, maar de definitie vertoont eigenschappen die tot twijfelachtig nut leiden.
Het is een inherent dubbelzinnig type dat niet goed met DST kan omgaan.