SQLites DATE()
funktion ger oss möjligheten att returnera datumet för den första instansen av en viss dag i en given månad. Därför kan vi använda den för att returnera den första måndagen i en viss månad. Vi kan också använda den för att returnera den första tisdagen, onsdagen, torsdagen, fredagen osv.
Vi kan använda DATETIME()
om vi vill att ett datetime-värde ska returneras.
Exempel
SELECT DATE('2025-10-20', 'start of month', 'weekday 1');
Resultat:
2025-10-06
I det här fallet inträffar den första måndagen i den givna månaden 2025-10-06.
start of month
och weekday 1
modifierare ändrar datumet som anges vid det första argumentet. Söndag är 0, måndag är 1, tisdag är 2, och så vidare. Därför använder vi värdet weekday 1
för att välja måndag.
Första måndagen i den aktuella månaden
Det här exemplet går igenom processen med det aktuella datumet:
SELECT
DATE('now') AS "Now",
DATE('now', 'start of month') AS "Start of Month",
DATE('now', 'start of month', 'weekday 1') AS "First Monday";
Resultat:
Now Start of Month First Monday ---------- -------------- ------------ 2022-03-09 2022-03-01 2022-03-07
Det här exemplet visar oss datumet i varje steg av dess ändring. Vi använder now
för att returnera det aktuella datumet, sedan start of month
för att flytta tillbaka den till början av månaden och sedan weekday 1
för att flytta fram datumet till första måndagen.
DATETIME()
Funktion
Vi kan också använda DATETIME()
funktion för att göra samma sak. Skillnaden är att den inkluderar tidsdelen:
SELECT DATETIME('2025-10-20', 'start of month', 'weekday 1');
Resultat:
2025-10-06 00:00:00