sql >> Base de Datos >  >> RDS >> PostgreSQL

Almacenamiento de zona horaria en tipo de datos marca de tiempo con zona horaria

Esto es solo un malentendido derivado del nombre de tipo algo engañoso. La zona horaria en sí no se almacena en absoluto . Simplemente actúa como compensación para calcular una marca de tiempo UTC (entrada), que en realidad se almacena. O como decorador en la visualización de una marca de tiempo según la zona horaria actual o dada (salida). Eso es todo según el estándar SQL.

Solo se almacena el punto en el tiempo, no hay información de zona. Es por eso que 64 bits de información son suficientes. La marca de tiempo se muestra al cliente de acuerdo con la configuración de zona horaria actual de la sesión.

Detalles:

  • Ignorar las zonas horarias por completo en Rails y PostgreSQL

Además, ya que Jon lo mencionó, time with time zone se define en el estándar SQL y, por lo tanto, se implementa en Postgres, pero se desaconseja su uso:

time with time zone está definido por el estándar SQL, pero la definición exhibe propiedades que conducen a una utilidad cuestionable.

Es un tipo intrínsecamente ambiguo que no puede manejar el horario de verano correctamente.