Se você precisar calcular o número de segundos que se passaram desde uma determinada data e hora, você pode usar o
UNIXEPOCH()
função. Observe que esta função foi introduzida no SQLite 3.38.0, portanto, só funcionará se você estiver usando o SQLite 3.38.0 ou posterior.
Exemplo
Segue um exemplo para demonstrar:
SELECT UNIXEPOCH() - UNIXEPOCH('2020-02-23 07:30:45');
Resultado:
64254554
Neste exemplo, retornei o número de segundos desde 2020-02-23 07:30:45.
Obviamente, o número de segundos será diferente se o executarmos novamente mais tarde:
SELECT UNIXEPOCH() - UNIXEPOCH('2020-02-23 07:30:45');
Resultado:
64254823
Número de segundos desde o início do mês
Aqui está um exemplo que retorna o número de segundos que se passaram desde o início do mês atual:
SELECT UNIXEPOCH() - UNIXEPOCH(DATETIME('now', 'start of month'));
Resultado:
605380
Aqui, usamos o
DATETIME()
função junto com o now
argumento para retornar a data e hora atuais. E também usamos o start of month
modificador para especificar o início do mês. O exemplo a seguir expande o anterior. Ele mostra as datas reais envolvidas, bem como os segundos entre elas:
SELECT
DATETIME('now', 'start of month') AS "Start of Month",
DATETIME('now') AS "Now",
UNIXEPOCH() - UNIXEPOCH(DATETIME('now', 'start of month')) AS "Seconds";
Resultado:
Start of Month Now Seconds ------------------- ------------------- ------- 2022-03-01 00:00:00 2022-03-08 00:12:04 605524
Você também pode usar
start of day
e start of year
para retornar os segundos desde o início do dia ou ano.