Se hai bisogno di calcolare il numero di secondi che sono trascorsi da una data e un'ora date, puoi usare il UNIXEPOCH()
funzione.
Nota che questa funzione è stata introdotta in SQLite 3.38.0, quindi funzionerà solo se stai utilizzando SQLite 3.38.0 o versioni successive.
Esempio
Ecco un esempio da dimostrare:
SELECT UNIXEPOCH() - UNIXEPOCH('2020-02-23 07:30:45');
Risultato:
64254554
In questo esempio, ho restituito il numero di secondi trascorsi dal 23-02-2020 07:30:45.
Ovviamente, il numero di secondi sarà diverso se lo eseguiamo di nuovo in un secondo momento:
SELECT UNIXEPOCH() - UNIXEPOCH('2020-02-23 07:30:45');
Risultato:
64254823
Numero di secondi dall'inizio del mese
Ecco un esempio che restituisce il numero di secondi trascorsi dall'inizio del mese corrente:
SELECT UNIXEPOCH() - UNIXEPOCH(DATETIME('now', 'start of month'));
Risultato:
605380
Qui utilizziamo il DATETIME()
funzione insieme a now
argomento per restituire la data e l'ora correnti. E utilizziamo anche start of month
modificatore per specificare l'inizio del mese.
L'esempio seguente amplia il precedente. Mostra le date effettive coinvolte, così come i secondi tra di loro:
SELECT
DATETIME('now', 'start of month') AS "Start of Month",
DATETIME('now') AS "Now",
UNIXEPOCH() - UNIXEPOCH(DATETIME('now', 'start of month')) AS "Seconds";
Risultato:
Start of Month Now Seconds ------------------- ------------------- ------- 2022-03-01 00:00:00 2022-03-08 00:12:04 605524
Puoi anche usare start of day
e start of year
per restituire i secondi dall'inizio del giorno o dell'anno.