sql >> Database teknologi >  >> RDS >> SQLite

Få den første mandag i en måned i SQLite

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

  1. Brug af SQL Views til at tilføje/redigere data i Microsoft Access

  2. Omdøb en kolonne i SQL Server (T-SQL)

  3. LIMIT søgeord på MySQL med forberedt erklæring

  4. Base 36 til Base 10 konvertering ved brug af SQL