sql >> Databasteknik >  >> RDS >> SQLite

Beräkna antalet sekunder sedan ett visst datum/tid i SQLite

Om du behöver beräkna antalet sekunder som har gått sedan ett givet datum och tid kan du använda UNIXEPOCH() fungera.

Observera att den här funktionen introducerades i SQLite 3.38.0, så den fungerar bara om du använder SQLite 3.38.0 eller senare.

Exempel

Här är ett exempel att visa:

SELECT UNIXEPOCH() - UNIXEPOCH('2020-02-23 07:30:45');

Resultat:

64254554

I det här exemplet returnerade jag antalet sekunder sedan 2020-02-23 07:30:45.

Uppenbarligen kommer antalet sekunder att vara annorlunda om vi kör det igen senare:

SELECT UNIXEPOCH() - UNIXEPOCH('2020-02-23 07:30:45');

Resultat:

64254823

Antal sekunder sedan månadens början

Här är ett exempel som returnerar antalet sekunder som har gått sedan början av den aktuella månaden:

SELECT UNIXEPOCH() - UNIXEPOCH(DATETIME('now', 'start of month'));

Resultat:

605380

Här använder vi DATETIME() fungerar tillsammans med now argument för att returnera aktuellt datum och tid. Och vi använder även start of month modifierare för att ange början av månaden.

Följande exempel utökar det föregående. Den visar de faktiska datumen, såväl som sekunderna mellan dem:

SELECT 
    DATETIME('now', 'start of month') AS "Start of Month",
    DATETIME('now') AS "Now",
    UNIXEPOCH() - UNIXEPOCH(DATETIME('now', 'start of month')) AS "Seconds";

Resultat:

Start of Month       Now                  Seconds
-------------------  -------------------  -------
2022-03-01 00:00:00  2022-03-08 00:12:04  605524 

Du kan också använda start of day och start of year för att returnera sekunderna sedan början av dagen eller året.


  1. PHP, MySQL-fel:Kolumnantal matchar inte värderäkning på rad 1

  2. ORD() Exempel – MySQL

  3. ORA-01658:det går inte att skapa INITIAL omfattning för segment i tabellutrymmet TS_DATA

  4. Pivotera, avpivotera och dela kolumner i Power BI Query Editor