PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Stockage du fuseau horaire dans le type de données timestamp avec fuseau horaire

C'est juste un malentendu provenant du nom de type quelque peu trompeur. Le fuseau horaire lui-même n'est pas du tout stocké . Il agit simplement comme décalage pour calculer un horodatage UTC (entrée), qui est en fait stocké. Soit comme décorateur dans l'affichage d'un horodatage selon le fuseau horaire courant ou donné (sortie). C'est tout selon la norme SQL.

Seul le point dans le temps est enregistré, aucune information de zone. C'est pourquoi 64 bits d'informations suffisent. L'horodatage est affiché pour le client en fonction du paramètre de fuseau horaire actuel de la session.

Détails :

  • Ignorer complètement les fuseaux horaires dans Rails et PostgreSQL

De plus, puisque Jon l'a mentionné, time with time zone est défini dans le standard SQL et donc implémenté dans Postgres, mais son utilisation est déconseillée :

time with time zone est défini par la norme SQL, mais la définition présente des propriétés qui conduisent à une utilité discutable.

C'est un type intrinsèquement ambigu qui ne peut pas gérer correctement l'heure d'été.