SQLite
 sql >> Base de données >  >> RDS >> SQLite

Obtenez le premier, deuxième, troisième ou quatrième lundi d'un mois dans SQLite

Nous pouvons utiliser le DATE() de SQLite fonction pour effectuer des calculs à une date donnée. L'une des choses que nous pouvons faire est de renvoyer la première, la deuxième, la troisième ou la quatrième instance d'un jour donné au cours d'un mois donné.

Exemple

Voici un exemple pour illustrer :

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";

Résultat :

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

Dans cet exemple, la date de début est la même pour toutes les instances, ainsi que la plupart des arguments. La seule chose qui change est le montant que nous ajoutons au début du mois. Si nous n'ajoutons rien, nous pouvons retourner le premier lundi, ajouter des retours de 7 jours le deuxième lundi, et ainsi de suite.

Ici, nous utilisons start of month pour ramener la date au premier jour du mois. Nous utilisons ensuite plus de modificateurs pour modifier cette date en conséquence.

Le weekday 1 le modificateur avance la date au lundi suivant (dimanche est 0, lundi est 1, mardi est 2, et ainsi de suite).

Pour obtenir le deuxième lundi, nous pouvons utiliser +7 days pour avancer la date d'une semaine. Pour les lundis suivants, nous ajoutons 7 jours à ce nombre (+14 days , +21 days , +28 days etc.).

Nous pouvons également voir que l'ajout de 28 jours renvoie le premier lundi du mois suivant.