Existe-t-il une fonction MySQL qui peut être utilisée pour convertir un horodatage Unix en une date lisible par l'homme? J'ai un champ où j'enregistre des temps Unix et maintenant je veux ajouter un autre champ pour les dates lisibles par l'homme.
mysql
unix-timestamp
Roi Julien
la source
la source
Réponses:
Utilisation
FROM_UNIXTIME()
:Voir aussi: documentation MySQL sur
FROM_UNIXTIME()
.la source
from_unixtime
: dev.mysql.com/doc/refman/5.1/en/…TO_UNIXTIME
, mais à la placeUNIX_TIMESTAMP
.Ce qui manque dans les autres réponses (au moment de la rédaction de ce document) et qui n'est pas directement évident, c'est qu'il
from_unixtime
peut prendre un deuxième paramètre pour spécifier le format comme suit:la source
Je pense que ce que vous cherchez c'est
FROM_UNIXTIME()
la source
Besoin d'un horodatage Unix dans un fuseau horaire spécifique?
Voici une ligne si vous avez un accès rapide au cli mysql:
Remplacez
'MST'
par le fuseau horaire souhaité. J'habite en Arizona 🌵 ainsi la conversion de l'UTC en MST.la source
Pourquoi prendre la peine de sauvegarder le champ comme lisible? Seulement nous
AS
EDIT: Désolé, nous stockons tout en millisecondes et non en secondes. A corrigé.
la source
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.
la source
Manière facile et simple:
select from_unixtime(column_name, '%Y-%m-%d') from table_name
la source
Depuis que j'ai trouvé que cette question n'était pas au courant, que mysql stocke toujours le temps dans les champs d'horodatage en UTC mais s'affichera (par exemple phpmyadmin) dans le fuseau horaire local, je voudrais ajouter mes résultats.
J'ai un champ last_modified mis à jour automatiquement, défini comme:
En le regardant avec phpmyadmin, on dirait qu'il est en heure locale, en interne c'est UTC
Dans toute constellation, UNIX_TIMESTAMP et 'as UTC' sont toujours affichés en temps UTC.
Exécutez-le deux fois, d'abord sans définir la zone de temps.
la source