Maison >base de données >tutoriel mysql >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 ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-26 16:28:031006parcourir

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 précis 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 avez 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 réaliser cette conversion dans MySQL, vous allez besoin d'exploiter une combinaison de fonctions mathématiques et de la fonction from_unixtime() :

<code class="sql">mysql> select from_unixtime(floor(1389422614485/1000));</code>

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, dans 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().

Sortie

+------------------------------------------+
| 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é, le format étant « AAAA-MM-JJ HH:MM:SS ».

Mise à jour pour MySQL 8.0 et supérieur

À partir de la version MySQL 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 :

<code class="sql">mysql> select from_unixtime(1594838230234/1000);</code>

Cela donnera le résultat suivant :

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

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn