Maison > base de données > tutoriel mysql > Comment MySQL peut-il gérer des dates/heures ambiguës lors des transitions vers l'heure d'été ?

Comment MySQL peut-il gérer des dates/heures ambiguës lors des transitions vers l'heure d'été ?

Mary-Kate Olsen
Libérer: 2024-12-25 20:29:09
original
723 Les gens l'ont consulté

How Can MySQL Handle Ambiguous Datetimes During Daylight Saving Time Transitions?

Gestion des heures d'été ambiguës avec l'heure d'été dans MySQL

Lorsque l'heure d'été (DST) se produit, il y a une heure ambiguë où c'est difficile pour déterminer la référence temporelle prévue. Par exemple, dans le fuseau horaire Amérique/New York, 1h30 du matin peut survenir deux fois pendant la période de transition d'automne.

Problème :

Les champs DATETIME et TIMESTAMP de MySQL présentent des défis lorsqu’il s’agit de gérer ces temps ambigus. Les champs DATETIME stockent les dates et les heures telles quelles, sans tenir compte des fuseaux horaires ni des conversions DST. Les champs TIMESTAMP convertissent les horodatages d'entrée en UTC et vice versa.

Solution :

1. Utilisez les champs DATETIME :

Convertissez les horodatages en UTC avant de les stocker dans les champs DATETIME. Cela garantit que vous avez le contrôle sur l'heure UTC exacte à enregistrer.

2. Interprétation des données récupérées :

Interprétez les horodatages récupérés à partir des champs DATETIME comme des horodatages UTC en dehors de MySQL. Cela évite les ambiguïtés introduites par les fonctions date/heure de MySQL.

3. Évitez les champs TIMESTAMP :

Évitez d'utiliser les champs TIMESTAMP car ils peuvent conduire à des conversions incohérentes entre l'heure locale et UTC lorsque l'heure d'été est impliquée.

Mise en œuvre :

Récupération Données :

// Example using PHP's DateTime class
$timestamp = strtotime($db_timestamp . ' UTC');
Copier après la connexion

Stockage des données :

// Example using PHP's DateTime class
$UTCDateTime = new DateTime('2009-11-01 1:30:00 EST');
$db_timestamp = $UTCDateTime->format('Y-m-d H:i:s');
Copier après la connexion

Considérations :

  • MySQL les fonctions de date/heure ne peuvent pas gérer les limites de l'heure d'été de manière fiable lors du stockage de données dans l'heure d'été fuseaux horaires.
  • Spécifier le décalage dans les champs DATETIME est ignoré par MySQL.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal