Convertir le champ d'horodatage en date dans la requête MySQL
-
Convertir
Timestamp
dans MySQL en utilisant le format de date -
Convertir l’horodatage dans MySQL à l’aide de
Unixtime
-
Convertir
Unixtime
en MySQL à l’aide de Cast
Cet article tutoriel va vous montrer comment convertir un champ timestamp
en champ date dans une requête MySQL. Cela montre comment utiliser le formatage lors de l’interrogation correcte des données.
Convertir Timestamp
dans MySQL en utilisant le format de date
Le type de données TIMESTAMP
vous permet d’enregistrer à la fois la date et l’heure. Il comporte 19 caractères fixes qui permettront une plage de dates allant de la première seconde du 1er janvier 1970 au 19 janvier 2038, à exactement 3 heures, 14 minutes et 7 secondes.
La fonction DATE_FORMAT
va permettre de prendre un champ d’une table et de le convertir au format souhaité dans une requête MySQL. Ce qui suit est une valeur du tableau operations
. Cela enregistre les détails de tous les événements opérationnels, tels qu’un arrêt, dans une usine.
| shutdown |
| ------------------- |
| 2021-12-31 09:45:07 |
Voici un exemple de conversion qui prendra la colonne shutdown
et la convertira d’un timestamp
au format par défaut YYYY-MM-DD HH:MM:SS
en une date au format DD-MM-YYY
.
CREATE TABLE operations (
user TEXT NOT NULL,
shutdown TIMESTAMP
);
INSERT INTO operations VALUES ('Mark', '2021-12-31 09:45:07');
SELECT DATE_FORMAT(operations.shutdown, '%d %m %Y')
AS 'Shutdown Date'
FROM operations
Production :
| Shutdown Date |
|:--------------|
| 31 12 2021 |
Vous pouvez également choisir d’inclure l’heure dans le format de date final en incluant %H
, %i
et %s
pour les valeurs d’heure, de minute et de seconde, respectivement.
CREATE TABLE operations (
user TEXT NOT NULL,
shutdown TIMESTAMP
);
INSERT INTO operations VALUES ('Mark', '2021-12-31 09:45:07');
SELECT DATE_FORMAT(operations.shutdown, '%d %m %Y %h%:%i%:%s')
AS 'Shutdown Date'
FROM operations
Production :
| Shutdown Date |
|:---------------------|
| 31 12 2021 09:45:07 |
Le symbole %i
est utilisé pour les minutes car %m
est déjà attribué aux valeurs numériques mensuelles.
Convertir l’horodatage dans MySQL à l’aide de Unixtime
Si l’horodatage est dans son format approprié, le format de date/heure 31 12 2021 09:45:07
pourrait ressembler à ceci : 1640943907
. Vous pouvez utiliser FROM_UNIXTIME
pour convertir la séquence de nombres au format date/heure.
CREATE TABLE operations (
user TEXT NOT NULL,
shutdown int(11)
);
INSERT INTO operations VALUES ('Mark', 1640943907);
SELECT DATE_FORMAT(FROM_UNIXTIME(operations.shutdown), '%d %m %Y %h%:%i%:%s')
AS 'Shutdown Date'
FROM operations
Résultat:
| Shutdown Date |
|:---------------------|
| 31 12 2021 09:45:07 |
Comme vu ci-dessus, l’horodatage a été converti au même format en ajoutant simplement FROM_UNIXTIME
pour convertir la séquence de nombres au format souhaité.
Convertir Unixtime
en MySQL à l’aide de Cast
Vous pouvez également utiliser CAST
à la place de DATE_FORMAT
pour convertir le format UNIXTIME
en une date.
CREATE TABLE operations (
user TEXT NOT NULL,
shutdown int(11)
);
INSERT INTO operations VALUES ('Mark', 1640943907);
SELECT CAST(FROM_UNIXTIME(operations.shutdown)
AS DATE)
AS 'Shutdown Date'
FROM operations
Production :
| Shutdown Date |
|:--------------|
| 2021-12-31 |
Cependant, cette méthode limite votre capacité à formater la date comme vous le souhaitez, c’est pourquoi l’utilisation de DATE_FORMAT
est préférable.