sql >> Database >  >> RDS >> SQLite

Bereken het aantal seconden sinds een bepaalde datum/tijd in SQLite

Als u het aantal seconden wilt berekenen dat is verstreken sinds een bepaalde datum en tijd, kunt u de UNIXEPOCH() gebruiken functie.

Merk op dat deze functie is geïntroduceerd in SQLite 3.38.0, dus het werkt alleen als je SQLite 3.38.0 of hoger gebruikt.

Voorbeeld

Hier is een voorbeeld om te demonstreren:

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

Resultaat:

64254554

In dit voorbeeld heb ik het aantal seconden geretourneerd sinds 2020-02-23 07:30:45.

Het is duidelijk dat het aantal seconden anders zal zijn als we het later opnieuw uitvoeren:

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

Resultaat:

64254823

Aantal seconden sinds het begin van de maand

Hier is een voorbeeld dat het aantal seconden retourneert dat is verstreken sinds het begin van de huidige maand:

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

Resultaat:

605380

Hier gebruiken we de DATETIME() functie samen met de now argument om de huidige datum en tijd te retourneren. En we gebruiken ook de start of month modifier om het begin van de maand te specificeren.

Het volgende voorbeeld is een uitbreiding van het vorige. Het toont de werkelijke datums, evenals de seconden ertussen:

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

Resultaat:

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

U kunt ook start of day . gebruiken en start of year om de seconden sinds het begin van de dag of het jaar terug te geven.


  1. Algemene zoekopdracht opslaan als kolom?

  2. Agent Decomission in EM13c

  3. Schrijfoptimalisaties voor Qualcomm Centriq 2400 in MariaDB 10.3.5 Release Candidate

  4. Wat zijn de BIN$...-tabellen in de ALL_TAB_COLUMNS-tabel van Oracle?