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

Ottieni il primo lunedì di un mese in SQLite

DATE() di SQLite La funzione ci fornisce la possibilità di restituire la data della prima istanza di un determinato giorno di un determinato mese. Pertanto, possiamo usarlo per restituire il primo lunedì di un determinato mese. Possiamo anche usarlo per restituire il primo martedì, mercoledì, giovedì, venerdì, ecc.

Possiamo usare DATETIME() se vogliamo che venga restituito un valore datetime.

Esempio

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

Risultato:

2025-10-06

In questo caso, il primo lunedì del mese in questione cade il 06-10-2025.

L'start of month e weekday 1 i modificatori modificano la data data al primo argomento. La domenica è 0, lunedì è 1, martedì è 2 e così via. Pertanto, utilizziamo un valore di weekday 1 per selezionare lunedì.

Primo lunedì del mese in corso

Questo esempio illustra il processo utilizzando la data corrente:

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

Risultato:

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

Questo esempio ci mostra la data in ogni fase della sua modifica. Usiamo now per restituire la data corrente, quindi start of month per riportarlo all'inizio del mese, quindi weekday 1 per anticipare la data al primo lunedì.

Il DATETIME() Funzione

Possiamo anche usare DATETIME() funzione per fare la stessa cosa. La differenza è che include la parte temporale:

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

Risultato:

2025-10-06 00:00:00