sql >> Databáze >  >> RDS >> SQLite

Vypočítejte počet sekund od určitého data/času v SQLite

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.


  1. Co je to relační databáze?

  2. Jak modelovat pro snadnou údržbu databáze

  3. Ekvivalentní funkce pro DATEADD() v Oracle

  4. Dotaz SQL pro sbalení duplicitních hodnot podle časového období