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

Aggiungi mesi a una data in SQLite

In SQLite, possiamo usare DATE() funzione per aggiungere uno o più mesi a una data.

Quando abbiamo a che fare con valori datetime, possiamo usare DATETIME() funzione.

Esempio

Ecco un esempio che utilizza DATE() funzione:

SELECT DATE('2050-08-21', '+1 month');

Risultato:

2050-09-21

Se volessimo sottrarre l'importo, potremmo sostituire + con - .

Inoltre, omettendo il + parte comporta l'aggiunta dell'importo, come se avessimo usato + :

SELECT DATE('2050-08-21', '1 month');

Risultato:

2050-09-21

Possiamo specificare i mesi in forma plurale o non plurale. In altre parole, month è equivalente a months :

SELECT 
    DATE('2050-08-21', '+3 month') AS month,
    DATE('2050-08-21', '+3 months') AS months;

Risultato:

month       months    
----------  ----------
2050-11-21  2050-11-21

Specificato in giorni

In alternativa possiamo aggiungere un mese o più alla data in base a un numero di giorni:

SELECT DATE('2050-08-21', '+31 days');

Risultato:

2050-09-21

Tuttavia, tieni presente che ciò richiederà di sapere esattamente quanti giorni sono appropriati per i mesi coinvolti. Alcuni mesi hanno 30 giorni, altri 31 e febbraio ne ha 28 o 29, a seconda che sia un anno bisestile o meno.

Con il month /months modificatore, SQLite normalizza la data, in base al numero di giorni nel/i mese/i rilevante/i.

Ecco un confronto tra mesi e giorni durante l'aggiunta a una data di marzo:

SELECT 
    DATE('2050-03-31', '+1 month') AS "1 month",
    DATE('2050-03-31', '+30 days') AS "30 days",
    DATE('2050-03-31', '+31 days') AS "31 days";

Risultato:

1 month     30 days     31 days   
----------  ----------  ----------
2050-05-01  2050-04-30  2050-05-01

Ed ecco lo stesso confronto quando si aggiunge una data a settembre:

SELECT 
    DATE('2050-09-30', '+1 month') AS "1 month",
    DATE('2050-09-30', '+30 days') AS "30 days",
    DATE('2050-09-30', '+31 days') AS "31 days";

Risultato:

1 month     30 days     31 days   
----------  ----------  ----------
2050-10-30  2050-10-30  2050-10-31

Il DATETIME() Funzione

Ecco un esempio che mostra come utilizzare DATETIME() funzione per aggiungere un mese a un valore datetime:

SELECT DATETIME('2050-08-21', '+1 month');

Risultato:

2050-09-21 00:00:00

In questo caso, ho passato un valore di data, ma la funzione ha restituito un valore di data e ora.

Ecco un altro esempio, questa volta con un valore datetime:

SELECT DATETIME('2050-08-21 18:30:45', '+1 month');

Risultato:

2050-09-21 18:30:45