SQLite
 sql >> Database >  >> RDS >> SQLite

Calcola il numero di secondi da una data/ora particolare in SQLite

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.