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.