Maison > base de données > tutoriel mysql > le corps du texte

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

Barbara Streisand
Libérer: 2024-10-26 16:28:03
original
931 Les gens l'ont consulté

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>
Copier après la connexion

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                      |
+------------------------------------------+
Copier après la connexion

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>
Copier après la connexion

Cela donnera le résultat suivant :

+------------------------------------------+
| from_unixtime(1594838230234/1000)        |
+------------------------------------------+
| 2020-07-15 18:37:10.2340                 |
+------------------------------------------+
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!