Nous pouvons utiliser le DATE()
de SQLite fonction pour renvoyer le premier lundi de chaque mois pour une année donnée, en fonction de la date que nous fournissons.
Mais ce n'est pas limité au lundi. Nous pouvons également obtenir le premier mardi, mercredi, jeudi, vendredi, etc. de chaque mois.
Exemple
Nous pouvons également utiliser un code comme celui-ci pour renvoyer le premier lundi de chaque mois tout au long de l'année :
SELECT
DATE('2025-10-20', 'start of year', 'weekday 1') AS "Jan",
DATE('2025-10-20', 'start of year', '+1 month', 'weekday 1') AS "Feb",
DATE('2025-10-20', 'start of year', '+2 months', 'weekday 1') AS "Mar",
DATE('2025-10-20', 'start of year', '+3 months', 'weekday 1') AS "Apr",
DATE('2025-10-20', 'start of year', '+4 months', 'weekday 1') AS "May",
DATE('2025-10-20', 'start of year', '+5 months', 'weekday 1') AS "Jun",
DATE('2025-10-20', 'start of year', '+6 months', 'weekday 1') AS "Jul",
DATE('2025-10-20', 'start of year', '+7 months', 'weekday 1') AS "Aug",
DATE('2025-10-20', 'start of year', '+8 months', 'weekday 1') AS "Sep",
DATE('2025-10-20', 'start of year', '+9 months', 'weekday 1') AS "Oct",
DATE('2025-10-20', 'start of year', '+10 months', 'weekday 1') AS "Nov",
DATE('2025-10-20', 'start of year', '+11 months', 'weekday 1') AS "Dec";
Résultat :
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- 2025-01-06 2025-02-03 2025-03-03 2025-04-07 2025-05-05 2025-06-02 2025-07-07 2025-08-04 2025-09-01 2025-10-06 2025-11-03 2025-12-01
Ici, nous appelons le DATE()
fonctionner douze fois. Nous utilisons la même date à chaque fois, et la plupart des arguments sont les mêmes. La seule chose qui change, c'est combien nous ajoutons au début de l'année.
Nous utilisons start of year
pour ramener la date au premier jour de l'année. Nous utilisons ensuite des modificateurs supplémentaires pour modifier cette date en conséquence.
Lorsque nous n'ajoutons aucun mois à la date, nous revenons au premier lundi de janvier. Ajout de +1 month
renvoie le premier lundi de février, et ainsi de suite.
Le weekday 1
le modificateur avance la date au lundi suivant. Dimanche est 0, lundi est 1, mardi est 2, et ainsi de suite, donc si nous voulions mardi par exemple, nous utiliserions weekday 2
à la place.
Utiliser la date actuelle
L'exemple suivant utilise la date actuelle :
SELECT
DATE('now') AS "Now",
DATE('now', 'start of year', 'weekday 1') AS "Jan",
DATE('now', 'start of year', '+1 month', 'weekday 1') AS "Feb",
DATE('now', 'start of year', '+2 months', 'weekday 1') AS "Mar",
DATE('now', 'start of year', '+3 months', 'weekday 1') AS "Apr",
DATE('now', 'start of year', '+4 months', 'weekday 1') AS "May",
DATE('now', 'start of year', '+5 months', 'weekday 1') AS "Jun",
DATE('now', 'start of year', '+6 months', 'weekday 1') AS "Jul",
DATE('now', 'start of year', '+7 months', 'weekday 1') AS "Aug",
DATE('now', 'start of year', '+8 months', 'weekday 1') AS "Sep",
DATE('now', 'start of year', '+9 months', 'weekday 1') AS "Oct",
DATE('now', 'start of year', '+10 months', 'weekday 1') AS "Nov",
DATE('now', 'start of year', '+11 months', 'weekday 1') AS "Dec";
Résultat :
Now Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- 2022-03-10 2022-01-03 2022-02-07 2022-03-07 2022-04-04 2022-05-02 2022-06-06 2022-07-04 2022-08-01 2022-09-05 2022-10-03 2022-11-07 2022-12-05