O SQLite 3.38.0 foi lançado em 2 de fevereiro de 2022. Com ele, vieram algumas melhorias nas funções de data e hora.
Uma dessas melhorias é a adição do
UNIXEPOCH()
função. Esta função retorna um timestamp unix. Ou seja, o número de segundos desde 1970-01-01 00:00:00 UTC. Exemplo
Aqui está um exemplo rápido para demonstrar:
SELECT UNIXEPOCH();
Resultado:
1646610077
Então, quando executei esse exemplo, houve 1646610077 segundos desde 1970-01-01 00:00:00 UTC.
A função sempre retorna um inteiro, mesmo que o valor de tempo de entrada tenha precisão de milissegundos.
Isso é o equivalente a fazer o seguinte:
SELECT STRFTIME('%s');
Resultado:
1646610181
Obviamente, houve alguns segundos entre a execução dos dois exemplos acima, então eles não são exatamente os mesmos. Mas podemos ver que eles são muito semelhantes.
Aqui está o resultado quando eles são executados ao mesmo tempo:
SELECT
UNIXEPOCH(),
STRFTIME('%s');
Resultado:
UNIXEPOCH() STRFTIME('%s') ----------- -------------- 1646610290 1646610290
Exatamente o mesmo.