Possiamo usare DATE()
di SQLite funzione per eseguire calcoli in una determinata data. Una delle cose che possiamo fare è restituire la prima, la seconda, la terza o la quarta istanza di un determinato giorno entro un determinato mese.
Esempio
Ecco un esempio da dimostrare:
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";
Risultato:
First Second Third Fourth Fifth ---------- ---------- ---------- ---------- ---------- 2025-10-06 2025-10-13 2025-10-20 2025-10-27 2025-11-03
In questo esempio, la data di inizio è la stessa per tutte le istanze, così come per la maggior parte degli argomenti. L'unica cosa che cambia è quanto aggiungiamo all'inizio del mese. Se non aggiungiamo nulla, possiamo restituire il primo lunedì, aggiungendo 7 giorni di reso il secondo lunedì e così via.
Qui utilizziamo start of month
per riportare la data al primo giorno del mese. Quindi utilizziamo più modificatori per modificare quella data di conseguenza.
Il weekday 1
il modificatore sposta la data in avanti al lunedì successivo (domenica è 0, lunedì è 1, martedì è 2 e così via).
Per ottenere il secondo lunedì possiamo usare +7 days
per anticipare la data di una settimana. Per i lunedì successivi aggiungiamo 7 giorni a quel numero (+14 days
, +21 days
, +28 days
ecc).
Possiamo anche vedere che l'aggiunta di 28 giorni restituisce il primo lunedì del mese successivo.