PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Armazenamento de fuso horário no carimbo de data/hora do tipo de dados com fuso horário


Este é apenas um mal-entendido decorrente do nome do tipo um tanto enganoso. O próprio fuso horário não é armazenado . Ele apenas atua como deslocamento para calcular um carimbo de data/hora UTC (entrada), que é realmente armazenado. Ou como decorador na exibição de um timestamp de acordo com o fuso horário atual ou determinado (saída). Isso é tudo de acordo com o padrão SQL.

Apenas o ponto no tempo é armazenado, nenhuma informação de zona. É por isso que 64 bits de informação são suficientes. O carimbo de data/hora é exibido para o cliente de acordo com a configuração de fuso horário atual da sessão.

Detalhes:
  • Ignorando completamente os fusos horários no Rails e no PostgreSQL

Além disso, como Jon mencionou, time with time zone é definido no padrão SQL e, portanto, implementado no Postgres, mas seu uso é desencorajado:

time with time zone é definido pelo padrão SQL, mas a definição exibe propriedades que levam a uma utilidade questionável.

É um tipo inerentemente ambíguo que não pode lidar com o horário de verão corretamente.