Jeśli chcesz obliczyć liczbę sekund, które upłynęły od podanej daty i godziny, możesz użyć funkcji UNIXEPOCH() funkcjonować.
Zauważ, że ta funkcja została wprowadzona w SQLite 3.38.0, więc będzie działać tylko wtedy, gdy używasz SQLite 3.38.0 lub nowszego.
Przykład
Oto przykład do zademonstrowania:
SELECT UNIXEPOCH() - UNIXEPOCH('2020-02-23 07:30:45'); Wynik:
64254554
W tym przykładzie zwróciłem liczbę sekund od 23.02.2020 r. 07:30:45.
Oczywiście liczba sekund będzie inna, jeśli uruchomimy go ponownie później:
SELECT UNIXEPOCH() - UNIXEPOCH('2020-02-23 07:30:45'); Wynik:
64254823
Liczba sekund od początku miesiąca
Oto przykład, który zwraca liczbę sekund, które minęły od początku bieżącego miesiąca:
SELECT UNIXEPOCH() - UNIXEPOCH(DATETIME('now', 'start of month')); Wynik:
605380
Tutaj używamy DATETIME() funkcja wraz z now argument, aby zwrócić bieżącą datę i godzinę. Używamy również start of month modyfikator, aby określić początek miesiąca.
Poniższy przykład jest rozwinięciem poprzedniego. Pokazuje rzeczywiste daty, a także sekundy między nimi:
SELECT
DATETIME('now', 'start of month') AS "Start of Month",
DATETIME('now') AS "Now",
UNIXEPOCH() - UNIXEPOCH(DATETIME('now', 'start of month')) AS "Seconds"; Wynik:
Start of Month Now Seconds ------------------- ------------------- ------- 2022-03-01 00:00:00 2022-03-08 00:12:04 605524
Możesz także użyć start of day i start of year aby zwrócić sekundy od początku dnia lub roku.