MariaDB fornisce diversi modi per eseguire l'aritmetica sulle date. Ciò include l'aggiunta o la sottrazione di un mese (o molti mesi) da una determinata data.
Ecco 6 modi per aggiungere un mese a una data in MariaDB.
Aggiornamento bonus :Ora ho aggiunto un settimo modo per aggiungere un mese a una data alla fine di questo articolo. Quindi immagino che ora ci siano 7 modi per aggiungere un mese a una data in MariaDB 🙂
Il DATE_ADD()
Funzione
Il DATE_ADD()
la funzione consente di aggiungere un importo a una data. Ad esempio puoi aggiungere un numero di giorni, settimane, mesi, anni ecc.
Esempio:
SELECT DATE_ADD('2021-05-01', INTERVAL 1 MONTH);
Risultato:
+------------------------------------------+ | DATE_ADD('2021-05-01', INTERVAL 1 MONTH) | +------------------------------------------+ | 2021-06-01 | +------------------------------------------+
Se devi aggiungere più di un mese, usa quel numero invece di 1
. Tuttavia, il MONTH
la parola chiave rimane non plurale a prescindere:
SELECT DATE_ADD('2021-05-01', INTERVAL 2 MONTH);
Risultato:
+------------------------------------------+ | DATE_ADD('2021-05-01', INTERVAL 2 MONTH) | +------------------------------------------+ | 2021-07-01 | +------------------------------------------+
È anche possibile utilizzare un'altra unità di data/ora con il numero appropriato di tale unità. Pertanto è possibile specificare un certo numero di giorni, ad esempio 30 o 31.
Esempio:
SELECT DATE_ADD('2021-05-01', INTERVAL 31 DAY);
Risultato:
+-----------------------------------------+ | DATE_ADD('2021-05-01', INTERVAL 31 DAY) | +-----------------------------------------+ | 2021-06-01 | +-----------------------------------------+
Quando si utilizzano i giorni, il fatto che sia esattamente un mese o meno dipenderà dal mese in questione. Nell'esempio sopra avrei potuto fornire 30 giorni, ma questo ci avrebbe trattenuto entro lo stesso mese:
SELECT DATE_ADD('2021-05-01', INTERVAL 30 DAY);
Risultato:
+-----------------------------------------+ | DATE_ADD('2021-05-01', INTERVAL 30 DAY) | +-----------------------------------------+ | 2021-05-31 | +-----------------------------------------+
Quindi, se in realtà vuoi aggiungere un mese, allora il MONTH
unità è molto più semplice che cercare di calcolare quanti giorni aggiungere.
Il ADDDATE()
Funzione
Un altro modo per aggiungere un mese a una data è utilizzare ADDDATE()
funzione. Questa funzione ha due sintassi. Una sintassi consente di aggiungere un numero di giorni a una data. L'altra sintassi è la stessa di DATE_ADD()
funzione sopra. Quando si utilizza questa sintassi, ADDDATE()
è sinonimo di DATE_ADD()
.
Esempio:
SELECT ADDDATE('2021-05-01', INTERVAL 1 MONTH);
Risultato:
+-----------------------------------------+ | ADDDATE('2021-05-01', INTERVAL 1 MONTH) | +-----------------------------------------+ | 2021-06-01 | +-----------------------------------------+
Il DATE_SUB()
Funzione
Il DATE_SUB()
la funzione ti consente di sottrarre un importo a una data. Tuttavia, se fornisci un valore negativo da sottrarre, finisce per essere aggiunto alla data.
Esempio:
SELECT DATE_SUB('2021-05-01', INTERVAL -1 MONTH);
Risultato:
+-------------------------------------------+ | DATE_SUB('2021-05-01', INTERVAL -1 MONTH) | +-------------------------------------------+ | 2021-06-01 | +-------------------------------------------+
Il SUBDATE()
Funzione
Il SUBDATE()
funzione è sinonimo di DATE_SUB()
quando si utilizza la seguente sintassi.
Esempio:
SELECT SUBDATE('2021-05-01', INTERVAL -1 MONTH);
Risultato:
+------------------------------------------+ | SUBDATE('2021-05-01', INTERVAL -1 MONTH) | +------------------------------------------+ | 2021-06-01 | +------------------------------------------+
Il +
Operatore
Un'altra opzione è usare il +
operatore.
Il +
operatore viene utilizzato per eseguire l'addizione e possiamo usarlo nelle date, insieme all'unità di data/ora applicabile per aggiungere un certo numero di mesi alla nostra data.
Esempio:
SELECT '2021-05-01' + INTERVAL 1 MONTH;
Risultato:
+---------------------------------+ | '2021-05-01' + INTERVAL 1 MONTH | +---------------------------------+ | 2021-06-01 | +---------------------------------+
Il -
Operatore
Il -
operatore può essere utilizzato per sottrarre un importo da una data. Ma se viene utilizzato per sottrarre un numero negativo, il risultato è un importo positivo che viene aggiunto alla data:
SELECT '2021-05-01' - INTERVAL -1 MONTH;
Risultato:
+----------------------------------+ | '2021-05-01' - INTERVAL -1 MONTH | +----------------------------------+ | 2021-06-01 | +----------------------------------+
Bonus:il ADD_MONTHS()
Funzione
Da quando ho scritto questo articolo per la prima volta, in MariaDB è stata introdotta una nuova funzione specifica per aggiungere mesi a una data.
La funzione si chiama ADD_MONTHS()
ed è stato introdotto in MariaDB 10.6.1 per migliorare la compatibilità Oracle.
Quindi immagino che questo articolo dovrebbe chiamarsi 7 modi per aggiungere un mese a una data... 🙂
Esempio:
SELECT ADD_MONTHS('2020-01-01', 3);
Risultato:
+-----------------------------+ | ADD_MONTHS('2020-01-01', 3) | +-----------------------------+ | 2020-04-01 | +-----------------------------+
Altre unità di data e ora
Gli esempi precedenti aggiungono un numero di mesi alla data, ma possiamo utilizzare le stesse tecniche per aggiungere qualsiasi unità di data/ora. Vedere Unità di data e ora di MariaDB per un elenco completo delle unità di data/ora che possono essere utilizzate con le funzioni e gli operatori di cui sopra.