sql >> Database >  >> RDS >> PostgreSQL

Tijdzoneopslag in tijdstempel van gegevenstype met tijdzone

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.



  1. Hoe de database te controleren op een niet-geroot Android-apparaat?

  2. Afstand tussen twee punten berekenen (breedtegraad, lengtegraad)

  3. Oracle IN vs Bestaat verschil?

  4. De SQL Server Query Store