Pokud potřebujete vypočítat počet sekund, které uplynuly od daného data a času, můžete použít UNIXEPOCH() funkce.
Všimněte si, že tato funkce byla zavedena v SQLite 3.38.0, takže bude fungovat pouze v případě, že používáte SQLite 3.38.0 nebo novější.
Příklad
Zde je příklad k demonstraci:
SELECT UNIXEPOCH() - UNIXEPOCH('2020-02-23 07:30:45'); Výsledek:
64254554
V tomto příkladu jsem vrátil počet sekund od 2020-02-23 07:30:45.
Je zřejmé, že počet sekund se bude lišit, pokud jej spustíme znovu později:
SELECT UNIXEPOCH() - UNIXEPOCH('2020-02-23 07:30:45'); Výsledek:
64254823
Počet sekund od začátku měsíce
Zde je příklad, který vrací počet sekund, které uplynuly od začátku aktuálního měsíce:
SELECT UNIXEPOCH() - UNIXEPOCH(DATETIME('now', 'start of month')); Výsledek:
605380
Zde používáme DATETIME() spolu s funkcí now argument pro vrácení aktuálního data a času. A také používáme start of month modifikátor k určení začátku měsíce.
Následující příklad rozšiřuje předchozí. Zobrazuje aktuální data a také sekundy mezi nimi:
SELECT
DATETIME('now', 'start of month') AS "Start of Month",
DATETIME('now') AS "Now",
UNIXEPOCH() - UNIXEPOCH(DATETIME('now', 'start of month')) AS "Seconds"; Výsledek:
Start of Month Now Seconds ------------------- ------------------- ------- 2022-03-01 00:00:00 2022-03-08 00:12:04 605524
Můžete také použít start of day a start of year vrátíte sekundy od začátku dne nebo roku.