Stockage d'horodatage dans Postgres : percer les mystères du fuseau horaire
Dans PostgreSQL, les types de données horodatage et horodatage avec fuseau horaire partagent une taille de stockage commune de 8 octets. Cependant, ils diffèrent considérablement dans leur traitement des informations de fuseau horaire.
Horodatage : heure sans zone
Le type de données d'horodatage stocke un point dans le temps en temps universel coordonné ( UTC). Il ne contient aucune information de fuseau horaire. Lors de la récupération d'un horodatage, il s'affiche en fonction du paramètre de fuseau horaire actuel de la session.
Horodatage avec fuseau horaire : stockage UTC décoré
L'horodatage avec fuseau horaire Le type de données stocke également un moment précis, mais il ne stocke pas directement les informations de fuseau horaire. Au lieu de cela, il agit comme un décalage pour calculer un horodatage UTC. Lors de la récupération d'un horodatage avec un fuseau horaire, il est converti en valeur d'horodatage en utilisant le fuseau horaire donné, puis affiché en conséquence.
Remarque importante : aucun stockage de fuseau horaire
Malgré son nom, le type de données horodatage avec fuseau horaire ne stocke pas le fuseau horaire lui-même. Il s’agit d’une idée fausse courante. Le fuseau horaire est utilisé uniquement à des fins d'affichage, pas pour le stockage.
Évitez l'heure avec le fuseau horaire
Alors que l'horodatage avec le type de données de fuseau horaire est défini dans le SQL standard, son utilisation est déconseillée. Il est intrinsèquement ambigu et peut conduire à des erreurs lors du traitement de l'heure d'été (DST).
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!