[MySQL] Transformer un timestamp en date ou datetime

Pour enregistrer une date dans une base de données, il est possible de stocker la données du timestamp UNIX (exemple : 1348254909) ou d’utiliser le format date (exemple : 2012-12-31) ou datetime (exemple : 2012-12-31 23:59:59). Cet article explique comment transformer un timestamp en date ou datetime.

Timestamp avec MySQL

Timestamp avec MySQL

Requête pour transformer le timestamp

Dans MySQL il faut utiliser la fonction FROM_UNIXTIME() pour transformer une valeur de timestamp en datetime. A partir de cette fonction, il suffit d’utiliser la fonction de transtypage CAST() pour transformer un datetime en date. Dès lors, voici un exemple de requête qui permet de récolter une date dans le format souhaité :

SELECT colonne_timestamp, 
  FROM_UNIXTIME(colonne_timestamp) as valeur_datetime,
  CAST(FROM_UNIXTIME(colonne_timestamp) as date) as valeur_date
FROM table

Cette requête permet de retourner les résultats suivants :

colonne_timestampvaleur_datetimevaleur_date
13478114562012-09-16 18:04:162012-09-16
13478114582012-09-16 18:04:182012-09-16
13478114622012-09-16 18:04:222012-09-16
13478114632012-09-16 18:04:132012-09-16
13478114652012-09-16 18:04:152012-09-16

Sauvegarder le timestamp en datetime

Afficher le résultat dans un SELECT est pratique, mais si le but est de changer la façon dont sont stockées les dates tout en conservant l’historique il faut utiliser un UPDATE de la façon suivante :

UPDATE table
SET colonne_datetime = FROM_UNIXTIME(colonne_timestamp)

Intérêt

Modifier la valeur de timestamp en datetime possède quelques avantages :

  • Plus facile à lire pour un humain
  • Plus facile de sélectionner les données en fonction d’une année, d’un mois, d’un jour, d’une heure …
  • Le 19 janvier 2038 le timestamp UNIX ne fonctionnera plus, mais le datetime fonctionnera toujours

Si vous souhaitez vérifier la date et l’heure d’un timestamp il est possible d’utiliser un outil en ligne pour convertir le timestamp.

Ce contenu a été publié dans Astuces.

A propos de l'auteur : Tony Archambeau

Fort de plusieurs années d'expérience dans le développement web, Tony partage ses connaissances sur des projets divers dont le site infowebmaster.fr. Il est possible de le suivre sur Twitter.
Partager

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.