sql >> Base de Datos >  >> RDS >> SQLite

Calcule el número de segundos desde una fecha/hora particular en SQLite

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.