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

Holen Sie sich den ersten Montag eines Jahres in SQLite

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