We kunnen SQLite's DATE()
. gebruiken functie om de eerste maandag van elke maand voor een bepaald jaar terug te geven, op basis van de datum die we verstrekken.
Maar het is niet beperkt tot maandag. We kunnen ook de eerste dinsdag, woensdag, donderdag, vrijdag, enz. van elke maand krijgen.
Voorbeeld
We kunnen ook de volgende code gebruiken om het hele jaar door de eerste maandag van elke maand terug te keren:
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";
Resultaat:
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
Hier noemen we de DATE()
twaalf keer functioneren. We gebruiken elke keer dezelfde datum en de meeste argumenten zijn hetzelfde. Het enige dat verandert, is hoeveel we toevoegen aan het begin van het jaar.
We gebruiken start of year
om de datum terug te zetten naar de eerste dag van het jaar. We gebruiken dan extra modifiers om die datum dienovereenkomstig aan te passen.
Als we geen maanden aan de datum toevoegen, keren we terug op de eerste maandag van januari. +1 month
toevoegen geeft de eerste maandag van februari terug, enzovoort.
De weekday 1
modifier verplaatst de datum naar de volgende maandag. Zondag is 0, maandag is 1, dinsdag is 2, enzovoort, dus als we bijvoorbeeld dinsdag zouden willen, zouden we weekday 2
gebruiken in plaats daarvan.
De huidige datum gebruiken
In het volgende voorbeeld wordt de huidige datum gebruikt:
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";
Resultaat:
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