Convertir l’horodatage Unix en date lisible par l’homme en utilisant MySQL

Existe-t-il une fonction MySQL permettant de convertir un horodatage Unix en une date lisible par l’homme? J’ai un champ où je sauve des temps d’Unix et maintenant je veux append un autre champ pour des dates lisibles par l’homme.

Utilisez from_unixtime :

SELECT from_unixtime(timestamp) FROM your_table 

Ce qui manque dans les autres réponses (de cette écriture) et qui n’est pas directement évident, c’est que from_unixtime peut aussi prendre un paramètre de format tel que:

 SELECT from_unixtime(timestamp, '%Y %D %M %h:%i:%s') FROM your_table 

Je pense que ce que vous cherchez est FROM_UNIXTIME()

Besoin d’un horodatage unix dans un fuseau horaire spécifique?

Voici une seule ligne si vous avez un access rapide à la mysql cli:

 mysql> select convert_tz(from_unixtime(1467095851), 'UTC', 'MST') as 'local time'; +---------------------+ | local time | +---------------------+ | 2016-06-27 23:37:31 | +---------------------+ 

Remplacez 'MST' par le fuseau horaire souhaité. Je vis en Arizona zona donc la conversion de UTC à MST.

Pourquoi se soucier de sauver le champ comme lisible? Juste nous AS

 SELECT theTimeStamp, FROM_UNIXTIME(theTimeStamp) AS readableDate FROM theTable WHERE theTable.theField = theValue; 

EDIT: Désolé, nous stockons tout en millisecondes et non pas en secondes. Corrigé

Vous pouvez utiliser la fonction DATE_FORMAT. Voici une page avec des exemples et les modèles que vous pouvez utiliser pour sélectionner différents composants de date.