SQLite
 sql >> Base de données >  >> RDS >> SQLite

Calculer le nombre de secondes depuis une date/heure particulière dans SQLite

Si vous avez besoin de calculer le nombre de secondes qui se sont écoulées depuis une date et une heure données, vous pouvez utiliser le UNIXEPOCH() une fonction.

Notez que cette fonction a été introduite dans SQLite 3.38.0, elle ne fonctionnera donc que si vous utilisez SQLite 3.38.0 ou une version ultérieure.

Exemple

Voici un exemple pour illustrer :

SELECT UNIXEPOCH() - UNIXEPOCH('2020-02-23 07:30:45');

Résultat :

64254554

Dans cet exemple, j'ai renvoyé le nombre de secondes depuis le 2020-02-23 07:30:45.

Évidemment, le nombre de secondes sera différent si nous le réexécutons plus tard :

SELECT UNIXEPOCH() - UNIXEPOCH('2020-02-23 07:30:45');

Résultat :

64254823

Nombre de secondes depuis le début du mois

Voici un exemple qui renvoie le nombre de secondes écoulées depuis le début du mois en cours :

SELECT UNIXEPOCH() - UNIXEPOCH(DATETIME('now', 'start of month'));

Résultat :

605380

Ici, nous utilisons le DATETIME() fonction avec now argument pour renvoyer la date et l'heure actuelles. Et nous utilisons également le start of month modificateur pour spécifier le début du mois.

L'exemple suivant développe le précédent. Il affiche les dates réelles impliquées, ainsi que les secondes entre elles :

SELECT 
    DATETIME('now', 'start of month') AS "Start of Month",
    DATETIME('now') AS "Now",
    UNIXEPOCH() - UNIXEPOCH(DATETIME('now', 'start of month')) AS "Seconds";

Résultat :

Start of Month       Now                  Seconds
-------------------  -------------------  -------
2022-03-01 00:00:00  2022-03-08 00:12:04  605524 

Vous pouvez également utiliser start of day et start of year pour retourner les secondes depuis le début du jour ou de l'année.