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

Obtenez le premier lundi d'un mois dans SQLite

DATE() de SQLite La fonction nous offre la possibilité de renvoyer la date de la première instance d'un jour donné d'un mois donné. Par conséquent, nous pouvons l'utiliser pour retourner le premier lundi d'un mois donné. On peut aussi l'utiliser pour retourner le premier mardi, mercredi, jeudi, vendredi, etc.

Nous pouvons utiliser DATETIME() si nous voulons qu'une valeur datetime soit renvoyée.

Exemple

SELECT DATE('2025-10-20', 'start of month', 'weekday 1');

Résultat :

2025-10-06

Dans ce cas, le premier lundi du mois donné tombe le 2025-10-06.

Le start of month et weekday 1 les modificateurs modifient la date donnée au premier argument. Dimanche est 0, lundi est 1, mardi est 2, et ainsi de suite. Par conséquent, nous utilisons une valeur de weekday 1 pour sélectionner Lundi.

Premier lundi du mois en cours

Cet exemple décrit le processus en utilisant la date actuelle :

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

Résultat :

Now         Start of Month  First Monday
----------  --------------  ------------
2022-03-09  2022-03-01      2022-03-07  

Cet exemple nous montre la date à chaque étape de sa modification. Nous utilisons now pour retourner la date du jour, puis start of month pour le remettre au début du mois, puis weekday 1 pour avancer la date au premier lundi.

Le DATETIME() Fonction

Nous pouvons également utiliser le DATETIME() fonction pour faire la même chose. La différence est qu'il inclut la partie horaire :

SELECT DATETIME('2025-10-20', 'start of month', 'weekday 1');

Résultat :

2025-10-06 00:00:00