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

Få den første mandag i et år i SQLite

Vi kan bruge SQLites DATE() funktion til at returnere datoen for den første forekomst af en given dag i et givet år. Derfor kan vi bruge det til at returnere den første mandag i et givet år. 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 year', 'weekday 1');

Resultat:

2025-01-06

I dette tilfælde finder den første mandag i det givne år sted 2025-01-06.

start of year 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 det aktuelle år

Her er et eksempel, der gennemgår processen med den aktuelle dato:

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

Resultat:

Now         Start of Year  First Monday
----------  -------------  ------------
2022-03-09  2022-01-01     2022-01-03  

Dette eksempel viser os datoen på hvert trin af dens ændring. Vi bruger now for at returnere den aktuelle dato, derefter start of year for at flytte det tilbage til starten af ​​året, 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 year', 'weekday 1');

Resultat:

2025-01-06 00:00:00

  1. Installation af SQL Express

  2. Den Adaptive Join Threshold

  3. Brug af COALESCE-funktionen til at lave værdier adskilt med kommaer

  4. Sådan "Unhex" et nummer i MySQL