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.