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

Få den første, anden, tredje eller fjerde mandag i en måned i SQLite

Vi kan bruge SQLites DATE() funktion til at udføre beregninger på en given dato. En af de ting, vi kan gøre, er at returnere den første, anden, tredje eller fjerde forekomst af en given dag inden for en given måned.

Eksempel

Her er et eksempel til demonstration:

SELECT 
    DATE('2025-10-20', 'start of month', 'weekday 1') AS "First",
    DATE('2025-10-20', 'start of month', '+7 days', 'weekday 1') AS "Second",
    DATE('2025-10-20', 'start of month', '+14 days', 'weekday 1') AS "Third",
    DATE('2025-10-20', 'start of month', '+21 days', 'weekday 1') AS "Fourth",
    DATE('2025-10-20', 'start of month', '+28 days', 'weekday 1') AS "Fifth";

Resultat:

First       Second      Third       Fourth      Fifth     
----------  ----------  ----------  ----------  ----------
2025-10-06  2025-10-13  2025-10-20  2025-10-27  2025-11-03

I dette eksempel er startdatoen den samme for alle forekomster, såvel som de fleste af argumenterne. Det eneste, der ændrer sig, er, hvor meget vi tilføjer til starten af ​​måneden. Hvis vi ikke tilføjer noget, kan vi returnere den første mandag, tilføje 7 dages returnering den anden mandag, og så videre.

Her bruger vi start of month for at returnere datoen til den første dag i måneden. Vi bruger derefter flere modifikatorer til at ændre denne dato i overensstemmelse hermed.

weekday 1 modifier flytter datoen frem til næste mandag (søndag er 0, mandag er 1, tirsdag er 2, og så videre).

For at få den anden mandag kan vi bruge +7 days at fremrykke datoen med en uge. For efterfølgende mandage tilføjer vi 7 dage til dette antal (+14 days , +21 days , +28 days osv.).

Vi kan også se, at tilføjelse af 28 dage returnerer den første mandag i den følgende måned.


  1. Sådan identificeres ugyldige (beskadigede) værdier gemt i Oracle DATE-kolonner

  2. Sådan opretter du en MySQL-database og indstiller privilegier

  3. I stedet for LIKE og ~, hvorfor kun SIMILAR TO virker, når man laver regex-match med alternativer

  4. ScaleGrid DBaaS shortlistet til Cloud Excellence Awards 2018