MariaDB
 sql >> Database >  >> RDS >> MariaDB

6 modi per aggiungere un mese a una data in MariaDB

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.