SQLites DATE()
funktion giver os mulighed for at returnere datoen for den første forekomst af en given dag i en given måned. Derfor kan vi bruge det til at returnere den første mandag i en given måned. Vi kan også bruge den til at returnere den første tirsdag, onsdag, torsdag, fredag osv.
Vi kan bruge DATETIME()
hvis vi ønsker, at en datetime-værdi skal returneres.
Eksempel
SELECT DATE('2025-10-20', 'start of month', 'weekday 1');
Resultat:
2025-10-06
I dette tilfælde finder den første mandag i den givne måned sted 2025-10-06.
start of month
og weekday 1
modifikatorer ændrer datoen givet ved det første argument. Søndag er 0, mandag er 1, tirsdag er 2, og så videre. Derfor bruger vi værdien weekday 1
for at vælge mandag.
Første mandag i den aktuelle måned
Dette eksempel gennemgår processen med den aktuelle dato:
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
Dette eksempel viser os datoen på hvert trin af dens ændring. Vi bruger now
for at returnere den aktuelle dato, derefter start of month
for at flytte det tilbage til starten af måneden, derefter weekday 1
for at flytte datoen frem til den første mandag.
DATETIME()
Funktion
Vi kan også bruge DATETIME()
funktion til at gøre det samme. Forskellen er, at den inkluderer tidsdelen:
SELECT DATETIME('2025-10-20', 'start of month', 'weekday 1');
Resultat:
2025-10-06 00:00:00