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