Wir können SQLites DATE()
verwenden Funktion, um das Datum der ersten Instanz eines bestimmten Tages eines bestimmten Jahres zurückzugeben. Daher können wir es verwenden, um den ersten Montag eines bestimmten Jahres zurückzugeben. Wir können es auch verwenden, um den ersten Dienstag, Mittwoch, Donnerstag, Freitag usw. zurückzugeben.
Wir können DATETIME()
verwenden wenn wir möchten, dass ein datetime-Wert zurückgegeben wird.
Beispiel
SELECT DATE('2025-10-20', 'start of year', 'weekday 1');
Ergebnis:
2025-01-06
In diesem Fall fällt der erste Montag des angegebenen Jahres auf den 06.01.2025.
Der start of year
und weekday 1
Modifikatoren ändern das im ersten Argument angegebene Datum. Sonntag ist 0, Montag ist 1, Dienstag ist 2 und so weiter. Daher verwenden wir einen Wert von weekday 1
um Montag auszuwählen.
Erster Montag des laufenden Jahres
Hier ist ein Beispiel, das den Prozess anhand des aktuellen Datums durchläuft:
SELECT
DATE('now') AS "Now",
DATE('now', 'start of year') AS "Start of Year",
DATE('now', 'start of year', 'weekday 1') AS "First Monday";
Ergebnis:
Now Start of Year First Monday ---------- ------------- ------------ 2022-03-09 2022-01-01 2022-01-03
Dieses Beispiel zeigt uns das Datum in jeder Phase seiner Änderung. Wir verwenden now
um das aktuelle Datum zurückzugeben, dann start of year
um es zurück zum Anfang des Jahres zu verschieben, dann weekday 1
um das Datum auf den ersten Montag vorzuverlegen.
Der DATETIME()
Funktion
Wir können auch DATETIME()
verwenden Funktion, um dasselbe zu tun. Der Unterschied besteht darin, dass es den Zeitabschnitt enthält:
SELECT DATETIME('2025-10-20', 'start of year', 'weekday 1');
Ergebnis:
2025-01-06 00:00:00