"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como converter números de época em datas legíveis por humanos no MySQL?

Como converter números de época em datas legíveis por humanos no MySQL?

Publicado em 2024-11-08
Navegar:696

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

Convertendo número de época em data legível por humanos no MySQL

No domínio do gerenciamento de banco de dados, muitas vezes é necessário converter números de época em datas legíveis por humanos. Os números de época, que representam um ponto no tempo desde uma época definida, são comumente usados ​​para armazenar dados temporais em sistemas de banco de dados como MySQL.

Considere o cenário hipotético onde você tem um número de época, como 1389422614485, que representa um ponto específico no tempo. O tipo de dados deste valor é varchar, e você deseja transformá-lo em um formato de data compreensível.

Solução detalhada

Para realizar esta conversão no MySQL, você precisa aproveitar uma combinação de funções matemáticas e a função from_unixtime():

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

Explanation

Neste exemplo, a função from_unixtime() é empregada para converter o número da época, que normalmente representa milissegundos desde a época, em uma string de data. Como nosso número de época parece ter precisão de milissegundos, usamos floor(1389422614485/1000) para convertê-lo em segundos desde a época, que é a entrada que from_unixtime() espera.

Output

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

A saída exibe a data legível correspondente ao número de época fornecido, com o formato sendo 'AAAA-MM-DD HH:MM:SS'.

Atualização para MySQL 8.0 e superior

A partir da versão 8.0 do MySQL, a função floor não é mais necessária ao trabalhar com milissegundos na função from_unixtime(). Você pode fornecer diretamente o número da época em milissegundos como argumento:

mysql> select from_unixtime(1594838230234/1000);

Isso produzirá a seguinte saída:

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

Este refinado A versão da consulta agora também oferece suporte à precisão de nanossegundos.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3