Si necesita calcular la cantidad de segundos que han pasado desde una fecha y hora determinadas, puede usar UNIXEPOCH()
función.
Tenga en cuenta que esta función se introdujo en SQLite 3.38.0, por lo que solo funcionará si está utilizando SQLite 3.38.0 o posterior.
Ejemplo
Aquí hay un ejemplo para demostrarlo:
SELECT UNIXEPOCH() - UNIXEPOCH('2020-02-23 07:30:45');
Resultado:
64254554
En este ejemplo, devolví la cantidad de segundos desde 2020-02-23 07:30:45.
Obviamente, el número de segundos será diferente si lo volvemos a ejecutar más tarde:
SELECT UNIXEPOCH() - UNIXEPOCH('2020-02-23 07:30:45');
Resultado:
64254823
Número de segundos desde el inicio del mes
Aquí hay un ejemplo que devuelve la cantidad de segundos que han pasado desde el comienzo del mes actual:
SELECT UNIXEPOCH() - UNIXEPOCH(DATETIME('now', 'start of month'));
Resultado:
605380
Aquí, usamos el DATETIME()
junto con el now
argumento para devolver la fecha y hora actual. Y también usamos el start of month
modificador para especificar el comienzo del mes.
El siguiente ejemplo amplía el anterior. Muestra las fechas reales involucradas, así como los segundos entre ellas:
SELECT
DATETIME('now', 'start of month') AS "Start of Month",
DATETIME('now') AS "Now",
UNIXEPOCH() - UNIXEPOCH(DATETIME('now', 'start of month')) AS "Seconds";
Resultado:
Start of Month Now Seconds ------------------- ------------------- ------- 2022-03-01 00:00:00 2022-03-08 00:12:04 605524
También puede usar start of day
y start of year
para devolver los segundos desde el inicio del día o año.