Heure d'été ambiguë dans les champs MySQL DATETIME
Les champs MySQL DATETIME présentent une énigme lors des transitions vers l'heure d'été (DST). Considérons le scénario dans lequel la transition de « repli » se produit, entraînant un gain d'une heure et deux occurrences distinctes de 1h30 : 1h30 - 04h00 et 1h30 - 05h00. Cette ambiguïté survient parce que les champs DATETIME ne stockent pas explicitement les informations de décalage comme le font les champs TIMESTAMP.
Défis et solutions
L'énigme met en évidence les défis liés au stockage de données spécifiques au temps dans Fuseaux horaires observant l’heure d’été. Ni les champs DATETIME ni TIMESTAMP ne peuvent conserver avec précision l'heure spécifiée lors de telles transitions. Cependant, il existe une solution impliquant l'utilisation judicieuse des champs DATETIME et des conversions de décalage dans des scripts personnalisés.
Conversion de champ DATETIME et de décalage
Les champs DATETIME permettent le stockage de données dans n’importe quel fuseau horaire, y compris les fuseaux horaires non DST. En convertissant les données du fuseau horaire DST du système en un fuseau horaire non-DST, tel que UTC, avant de les enregistrer dans le champ DATETIME, l'ambiguïté est résolue. La logique de conversion peut être implémentée dans le langage de script utilisé pour interagir avec la base de données.
Récupération et interprétation
Lors de la récupération des données de la base de données, le même processus de conversion doit être appliqué en dehors de MySQL pour garantir une interprétation précise. Des fonctions comme strtotime() ou la classe DateTime en PHP peuvent être utilisées pour interpréter les données en heure UTC et éviter l'ambiguïté associée aux décalages -04h00 et -05h00.
Conclusion
Bien que les fonctions mathématiques date/heure de MySQL puissent ne pas gérer les transitions DST dans les fuseaux horaires observant l'heure d'été, la combinaison des champs DATETIME et des conversions de décalage explicites en dehors de MySQL offre une solution fiable. Cette approche garantit le stockage et la récupération précis des données temporelles, même pendant les transitions vers l'heure d'été.
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!