Maison  >  Article  >  développement back-end  >  Comment gérer l’heure d’été dans les champs Datetime MySQL ?

Comment gérer l’heure d’été dans les champs Datetime MySQL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-16 19:39:03717parcourir

How to Handle Daylight Savings Time in MySQL Datetime Fields?

Gestion de l'heure d'été dans les champs datetime MySQL

Lors de l'utilisation de champs datetime dans MySQL, la spécification du décalage horaire peut poser un défi, en particulier lorsqu'il s'agit de l'heure d'été (DST).

Les champs datetime de MySQL stockent directement les horodatages, sans appliquer de conversions de fuseau horaire. Cela signifie que les horodatages peuvent être ambigus lorsqu'ils sont stockés dans un fuseau horaire qui respecte l'heure d'été. Par exemple, "2009-11-01 01:30:00" peut faire référence à 01:30:00 avant ou après le "repli" de l'automne.

Pour stocker et récupérer avec précision les données temporelles lors des transitions DST , les étapes suivantes sont recommandées :

  1. Utilisez les champs DATETIME :

    • Les champs TIMESTAMP convertissent automatiquement les horodatages en UTC et inversement, ce qui peut provoquer des allers-retours avec perte lors de l'utilisation de fuseaux horaires avec DST.
    • Les champs DATETIME, en revanche, stockent les horodatages tels quels.
  2. Convertir les fuseaux horaires avant Enregistrement :

    • Pour garantir un stockage précis, convertissez les horodatages du fuseau horaire du système en un fuseau horaire non DST (par exemple, UTC) avant de les enregistrer dans la base de données.
  3. Convertir les fuseaux horaires avant la récupération :

    • Pour interpréter avec précision les horodatages récupérés, convertissez-les du fuseau horaire UTC vers le fuseau horaire du système local à l'aide de fonctions externes en dehors de MySQL (par exemple, la classe strtotime() ou DateTime de PHP).
  4. Évitez les fonctions mathématiques date/heure MySQL :

    • Les fonctions mathématiques de date/heure de MySQL peuvent mal fonctionner autour des limites de l'heure d'été lorsqu'il s'agit d'horodatages stockés dans les fuseaux horaires DST.

En suivant ces étapes, vous pouvez stocker et récupérer de manière fiable des données temporelles dans MySQL. , même lorsqu'il s'agit de transitions DST, en garantissant que les horodatages sont enregistrés et représentés avec précision.

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!

Déclaration:
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