Types de données d'horodatage : plongée dans le stockage de fuseau horaire
Les types de données timestamp et timestamp with timezone dans PostgreSQL partagent un format de stockage commun, tous deux en utilisant 8 octets. Bien que leurs noms suggèrent une différence dans la gestion des fuseaux horaires, la véritable nature de leur stockage est plus complexe.
1. Horodatage : une représentation UTC
Malgré son nom, le type de données d'horodatage stocke uniquement le moment précis sous forme d'horodatage UTC. Il manque toute information sur le fuseau horaire. Par conséquent, les besoins de stockage sont limités à 64 bits, suffisants pour représenter un instant précis.
2. Horodatage avec fuseau horaire : un terme inapproprié
Contrairement à son titre, le type de données horodatage avec fuseau horaire stocke également uniquement l'horodatage UTC. Il ne conserve aucune information de fuseau horaire. Au lieu de cela, il agit comme un mécanisme pour décaler l'horodatage UTC stocké en fonction du paramètre de fuseau horaire actuel lors de l'affichage.
3. Gestion des fuseaux horaires hors stockage
Aucun des types de données d'horodatage ne stocke explicitement les informations de fuseau horaire. Au lieu de cela, il est géré en dehors du stockage réel. Lors de l'affichage d'un horodatage avec un fuseau horaire, PostgreSQL appliquera le décalage en fonction du paramètre de fuseau horaire actuel de la session.
4. Précautions et bonnes pratiques
Le type de données Heure avec fuseau horaire, bien que défini dans la norme SQL, pose des défis en raison de son potentiel d'ambiguïté et de sa difficulté à gérer l'heure d'été. Son utilisation est généralement déconseillée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!