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.
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