Ce tutoriel couvrira les bases du travail avec le type de données d'horodatage dans MySQL.
Le type de données d'horodatage vous permet de stocker les valeurs de date et de temps au format de l'horodatage comme yyyy-mm-dd hh: mm: ss.
La valeur d'un type de données d'horodatage dans MySQL varie de 1970-01-01 00:00:01 à 2038-01-19 03:14:07 en UTC.
Lors du stockage d'une valeur d'horodatage, MySQL convertira l'heure actuelle en UTC et la stockera dans la table cible. MySQL convertira la valeur de l'UTC à l'heure actuelle pendant la récupération. Il est bon de se rappeler que cette fonctionnalité s'applique uniquement au type de données horodat.
Par conséquent, comme le fuseau horaire peut être réglé sur une session donnée, mon SQL vous permet de récupérer la même valeur stockée tant que le fuseau horaire reste constant.
Exemple de fuseau horaire mysql
Couvrons un exemple de la façon de travailler avec le type de données d'horodatage dans MySQL. Considérez le tableau ci-dessous avec une colonne d'horodatage.
créer la base de données tempdb;
Utilisez TempDB;
Créer un échantillon de table (
id int Auto_increment Clé primaire,
T horodatage
));
set time_zone = '+ 03:00';
La requête ci-dessus crée un exemple de base de données et de table avec une colonne d'horodatage. Nous définissons également le fuseau horaire de la session en utilisant le paramètre Time_zone.
Nous pouvons ensuite insérer les valeurs de date et de temps dans la colonne comme indiqué dans la requête ci-dessous:
insérer dans l'échantillon (t)
Valeurs ('2022-10-10 23:45:23'),
('2020-12-10 13:43:32'),
('1990-10-10 16:23:32');
Nous pouvons ensuite sélectionner les valeurs d'horodatage dans la table comme indiqué:
Sélectionner * à partir de l'échantillon;
Résultat:
Démontrer l'utilisation du fuseau horaire dans l'horodatage
Comme mentionné, si le fuseau horaire est constant, nous pouvons obtenir la même valeur que nous avons enregistrée dans le tableau, comme démontré ci-dessus.
Voyons quelles valeurs nous obtenons si nous modifions la valeur du fuseau horaire:
set time_zone = '-7: 00';
Sélectionner * à partir de l'échantillon;
Si nous exécutons l'instruction ci-dessus, nous devons obtenir un tableau avec la valeur comme indiqué:
Remarquez que nous obtenons des valeurs différentes de ce que nous avons enregistré. Cela se produit en raison du changement dans le fuseau horaire.
Utilisation d'initialisation automatique à l'aide du type de données horodat
Nous pouvons automatiquement initialiser une colonne donnée en définissant la contrainte par défaut au courant_timestamp.
Dans le cas, MySQL insérera la valeur actuelle de l'horodatage à une ligne donnée, comme indiqué dans l'exemple ci-dessous:
Créer un échantillon de table (
id int Auto_increment Clé primaire,
T Timestamp Default Current_timestamp
));
Nous pouvons ensuite insérer des valeurs dans la table comme indiqué:
Insérer dans l'échantillon (ID)
valeurs (1), (2), (3);
Comme vous pouvez le remarquer, nous ne prévoyons pas la colonne T. Cela devrait forcer MySQL à utiliser la valeur par défaut comme indiqué:
Sélectionner * à partir de l'échantillon;
Sortir:
Comme vous pouvez le voir, toutes les lignes partagent la même valeur d'horodatage indiquant l'heure d'insertion. Cette fonctionnalité est appelée initialisation automatique.
Conclusion
Dans cet exemple, nous avons discuté des principes fondamentaux de la travail avec le type de données horodomagistes dans MySQL.