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

Obtenez le premier lundi d'une année dans SQLite

Nous pouvons utiliser le DATE() de SQLite fonction pour renvoyer la date de la première instance d'un jour donné d'une année donnée. Par conséquent, nous pouvons l'utiliser pour retourner le premier lundi d'une année donnée. On peut aussi l'utiliser pour retourner le premier mardi, mercredi, jeudi, vendredi, etc.

Nous pouvons utiliser DATETIME() si nous voulons qu'une valeur datetime soit renvoyée.

Exemple

SELECT DATE('2025-10-20', 'start of year', 'weekday 1');

Résultat :

2025-01-06

Dans ce cas, le premier lundi de l'année donnée tombe le 2025-01-06.

Le start of year et weekday 1 les modificateurs modifient la date donnée au premier argument. Dimanche est 0, lundi est 1, mardi est 2, et ainsi de suite. Par conséquent, nous utilisons une valeur de weekday 1 pour sélectionner Lundi.

Premier lundi de l'année en cours

Voici un exemple qui décrit le processus en utilisant la date actuelle :

SELECT 
    DATE('now') AS "Now",
    DATE('now', 'start of year') AS "Start of Year",
    DATE('now', 'start of year', 'weekday 1') AS "First Monday";

Résultat :

Now         Start of Year  First Monday
----------  -------------  ------------
2022-03-09  2022-01-01     2022-01-03  

Cet exemple nous montre la date à chaque étape de sa modification. Nous utilisons now pour retourner la date actuelle, puis start of year pour le remettre au début de l'année, puis weekday 1 pour avancer la date au premier lundi.

Le DATETIME() Fonction

Nous pouvons également utiliser le DATETIME() fonction pour faire la même chose. La différence est qu'il inclut la partie horaire :

SELECT DATETIME('2025-10-20', 'start of year', 'weekday 1');

Résultat :

2025-01-06 00:00:00