"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment convertir des numéros d'époque en dates lisibles par l'homme dans MySQL ?

Comment convertir des numéros d'époque en dates lisibles par l'homme dans MySQL ?

Publié le 2024-11-08
Parcourir:858

How to Convert Epoch Numbers to Human-Readable Dates in MySQL?

Conversion du numéro d'époque en date lisible par l'homme dans MySQL

Dans le domaine de la gestion de bases de données, il est souvent nécessaire de convertir les numéros d'époque en dates lisibles par l'homme. Les numéros d'époque, qui représentent un moment donné depuis une époque définie, sont couramment utilisés pour stocker des données temporelles dans des systèmes de bases de données comme MySQL.

Considérez le scénario hypothétique dans lequel vous disposez d'un numéro d'époque, tel que 1389422614485, qui représente un moment précis dans le temps. Le type de données de cette valeur est varchar et vous souhaitez le transformer dans un format de date compréhensible.

Solution détaillée

Pour effectuer cette conversion dans MySQL, vous allez besoin d'exploiter une combinaison de fonctions mathématiques et la fonction from_unixtime() :

mysql> select from_unixtime(floor(1389422614485/1000));

Explication

Dans cet exemple, la fonction from_unixtime() est utilisée pour convertir le numéro d'époque, qui représente généralement les millisecondes depuis l'époque, en une chaîne de date. Étant donné que notre numéro d'époque semble avoir une précision à la milliseconde, nous utilisons floor(1389422614485/1000) pour le convertir en secondes depuis l'époque, qui est l'entrée attendue par from_unixtime().

Output

 ------------------------------------------ 
| from_unixtime(floor(1389422614485/1000)) |
 ------------------------------------------ 
| 2014-01-11 12:13:34                      |
 ------------------------------------------ 

La sortie affiche la date lisible par l'homme correspondant au numéro d'époque donné, au format « AAAA-MM-JJ HH:MM:SS ».

Mise à jour pour MySQL 8.0 et supérieur

Depuis MySQL version 8.0, la fonction floor n'est plus nécessaire lorsque vous travaillez avec des millisecondes dans la fonction from_unixtime(). Vous pouvez directement fournir le numéro d'époque en millisecondes comme argument :

mysql> select from_unixtime(1594838230234/1000);

Cela donnera le résultat suivant :

 ------------------------------------------ 
| from_unixtime(1594838230234/1000)        |
 ------------------------------------------ 
| 2020-07-15 18:37:10.2340                 |
 ------------------------------------------ 

Ce raffiné La version de la requête prend désormais également en charge la précision à la nanoseconde.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3