SQLite
 sql >> Datenbank >  >> RDS >> SQLite

Berechnen Sie die Anzahl der Sekunden seit einem bestimmten Datum/einer bestimmten Uhrzeit in SQLite

Wenn Sie die Anzahl der Sekunden berechnen müssen, die seit einem bestimmten Datum und einer bestimmten Uhrzeit vergangen sind, können Sie UNIXEPOCH() verwenden Funktion.

Beachten Sie, dass diese Funktion in SQLite 3.38.0 eingeführt wurde und daher nur funktioniert, wenn Sie SQLite 3.38.0 oder höher verwenden.

Beispiel

Hier ist ein Beispiel zur Veranschaulichung:

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

Ergebnis:

64254554

In diesem Beispiel habe ich die Anzahl der Sekunden seit 2020-02-23 07:30:45 zurückgegeben.

Offensichtlich wird die Anzahl der Sekunden anders sein, wenn wir es später noch einmal ausführen:

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

Ergebnis:

64254823

Anzahl Sekunden seit Monatsbeginn

Hier ist ein Beispiel, das die Anzahl der Sekunden zurückgibt, die seit Beginn des aktuellen Monats vergangen sind:

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

Ergebnis:

605380

Hier verwenden wir das DATETIME() Funktion zusammen mit dem now -Argument, um das aktuelle Datum und die Uhrzeit zurückzugeben. Und wir verwenden auch den start of month Modifikator, um den Beginn des Monats anzugeben.

Das folgende Beispiel erweitert das vorherige. Es zeigt die tatsächlich beteiligten Daten sowie die Sekunden dazwischen:

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

Ergebnis:

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

Sie können auch start of day verwenden und start of year um die Sekunden seit Beginn des Tages oder Jahres zurückzugeben.