Convertir le champ d'horodatage en date dans la requête MySQL

Raymond Peter 30 janvier 2023
  1. Convertir Timestamp dans MySQL en utilisant le format de date
  2. Convertir l’horodatage dans MySQL à l’aide de Unixtime
  3. Convertir Unixtime en MySQL à l’aide de Cast
Convertir le champ d'horodatage en date dans la requête MySQL

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.

Article connexe - MySQL Timestamp