SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Calcular o número de segundos desde uma data/hora específica no SQLite


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.