SQLite
 sql >> Datenbank >  >> RDS >> SQLite

Holen Sie sich den ersten Montag eines Monats in SQLite

DATE() von SQLite -Funktion gibt uns die Möglichkeit, das Datum der ersten Instanz eines bestimmten Tages eines bestimmten Monats zurückzugeben. Daher können wir es verwenden, um den ersten Montag eines bestimmten Monats 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 month', 'weekday 1');

Ergebnis:

2025-10-06

In diesem Fall fällt der erste Montag des angegebenen Monats auf den 06.10.2025.

Der start of month 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 aktuellen Monats

Dieses Beispiel führt Sie anhand des aktuellen Datums durch den Prozess:

SELECT 
    DATE('now') AS "Now",
    DATE('now', 'start of month') AS "Start of Month",
    DATE('now', 'start of month', 'weekday 1') AS "First Monday";

Ergebnis:

Now         Start of Month  First Monday
----------  --------------  ------------
2022-03-09  2022-03-01      2022-03-07  

Dieses Beispiel zeigt uns das Datum in jeder Phase seiner Änderung. Wir verwenden now um das aktuelle Datum zurückzugeben, dann start of month um es zurück zum Anfang des Monats 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 month', 'weekday 1');

Ergebnis:

2025-10-06 00:00:00