Ако трябва да изчислите броя на секундите, изминали от дадена дата и час, можете да използвате UNIXEPOCH()
функция.
Имайте предвид, че тази функция е въведена в SQLite 3.38.0, така че ще работи само ако използвате SQLite 3.38.0 или по-нова версия.
Пример
Ето пример за демонстрация:
SELECT UNIXEPOCH() - UNIXEPOCH('2020-02-23 07:30:45');
Резултат:
64254554
В този пример върнах броя на секундите от 23.02.2020 г. 07:30:45.
Очевидно броят на секундите ще бъде различен, ако го стартираме отново по-късно:
SELECT UNIXEPOCH() - UNIXEPOCH('2020-02-23 07:30:45');
Резултат:
64254823
Брой секунди от началото на месеца
Ето пример, който връща броя секунди, изминали от началото на текущия месец:
SELECT UNIXEPOCH() - UNIXEPOCH(DATETIME('now', 'start of month'));
Резултат:
605380
Тук използваме DATETIME()
функция заедно с now
аргумент за връщане на текущата дата и час. Освен това използваме start of month
модификатор, за да посочите началото на месеца.
Следващият пример разширява предишния. Показва действителните включени дати, както и секундите между тях:
SELECT
DATETIME('now', 'start of month') AS "Start of Month",
DATETIME('now') AS "Now",
UNIXEPOCH() - UNIXEPOCH(DATETIME('now', 'start of month')) AS "Seconds";
Резултат:
Start of Month Now Seconds ------------------- ------------------- ------- 2022-03-01 00:00:00 2022-03-08 00:12:04 605524
Можете също да използвате start of day
и start of year
за да върнете секундите от началото на деня или годината.