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

Ottieni il primo lunedì dell'anno in SQLite

Possiamo usare DATE() di SQLite funzione per restituire la data della prima istanza di un determinato giorno di un determinato anno. Pertanto, possiamo usarlo per restituire il primo lunedì di un determinato anno. 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 year', 'weekday 1');

Risultato:

2025-01-06

In questo caso, il primo lunedì dell'anno si verifica il 06-01-2025.

L'start of year 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ì dell'anno in corso

Ecco un esempio che illustra il processo utilizzando la data corrente:

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

Risultato:

Now         Start of Year  First Monday
----------  -------------  ------------
2022-03-09  2022-01-01     2022-01-03  

Questo esempio ci mostra la data in ogni fase della sua modifica. Usiamo now per restituire la data corrente, quindi start of year per riportarlo all'inizio dell'anno, 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 year', 'weekday 1');

Risultato:

2025-01-06 00:00:00