Função MySQL UNIX_TIMESTAMP()
A função `UNIX_TIMESTAMP()` do MySQL retorna o carimbo de data/hora Unix atual, que é o número de segundos decorridos desde '1970-01-01 00:00:00' UTC. Ele também pode converter uma expressão de data fornecida em um carimbo de data/hora Unix.
Uso
A função `UNIX_TIMESTAMP()` é usada para recuperar o carimbo de data/hora atual ou converter um valor de data e hora em um formato de carimbo de data/hora Unix. Isso é particularmente útil para comparações de datas e armazenamento.
sql
UNIX_TIMESTAMP([date]);
Nessa sintaxe, `date` é um argumento opcional que representa a data que você deseja converter. Deve ser uma expressão de data válida. Formatos de data inválidos podem resultar em um valor de retorno `NULL` ou em um erro, dependendo do modo SQL. Se omitido, a função retorna o registro de data e hora atual.
Exemplos
1. Carimbo de data/hora atual do Unix
sql
SELECT UNIX_TIMESTAMP();
Esse exemplo retorna o registro de data e hora Unix atual no momento da execução.
2. Converter data específica em carimbo de data/hora Unix
sql
SELECT UNIX_TIMESTAMP('2023-10-10 10:00:00');
Essa consulta converte a data e a hora especificadas em um carimbo de data/hora Unix, fornecendo uma representação numérica. Observe que a função retorna um valor inteiro que representa segundos, não segundos fracionários.
3. Usando UNIX_TIMESTAMP() em uma cláusula WHERE
sql
SELECT *
FROM events
WHERE event_time < FROM_UNIXTIME(UNIX_TIMESTAMP() - 86400);
Nesse exemplo, a função é usada para localizar todos os eventos que ocorreram há mais de 24 horas, comparando a hora do evento com o registro de data e hora atual menos 86.400 segundos (um dia). Ele pressupõe que `event_time` seja armazenado em um formato compatível com `FROM_UNIXTIME()`, como um carimbo de data/hora Unix ou um formato de data/hora conversível.
Dicas e práticas recomendadas
- Omitir o argumento para a hora atual. Quando você precisar do carimbo de data/hora atual, use `UNIX_TIMESTAMP()` sem argumentos para simplificar.
- Armazenar carimbos de data e hora para portabilidade. Use carimbos de data e hora Unix para armazenamento consistente de data e hora em diferentes sistemas e fusos horários.
- Combine com FROM_UNIXTIME(). Use `FROM_UNIXTIME()` para converter os carimbos de data/hora em um formato de data legível quando necessário.
- Tenha em mente os fusos horários. Lembre-se de que os registros de data e hora do Unix estão em UTC. Qualquer argumento de data fornecido é considerado como estando no fuso horário da sessão atual, a menos que especificado de outra forma. Ajuste para os fusos horários locais, conforme necessário.
- Tratamento de erros para datas inválidas. Esteja ciente de que expressões de data inválidas podem retornar `NULL` ou um erro, e trate esses casos adequadamente.
- Legibilidade humana. Embora os carimbos de data e hora do Unix sejam eficientes para armazenamento, eles são menos legíveis por humanos. Considere registrar ou armazenar a data-hora original para referência, se necessário, para depuração.