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

6 modi per aggiungere un anno a una data in MariaDB

MariaDB fornisce diversi modi per aggiungere un anno o un certo numero di anni a una data data. Ad esempio, potresti voler aggiungere 1 anno, 10 anni, 30 anni, ecc.

Ecco 6 modi per aggiungere un anno 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 YEAR);

Risultato:

+-----------------------------------------+
| DATE_ADD('2021-05-01', INTERVAL 1 YEAR) |
+-----------------------------------------+
| 2022-05-01                              |
+-----------------------------------------+

Non c'è nessuna regola che dice che può essere solo 1 anno. Puoi aggiungere più anni. In ogni caso, l'YEAR la parola chiave rimane non plurale:

SELECT DATE_ADD('2021-05-01', INTERVAL 10 YEAR);

Risultato:

+------------------------------------------+
| DATE_ADD('2021-05-01', INTERVAL 10 YEAR) |
+------------------------------------------+
| 2031-05-01                               |
+------------------------------------------+

È anche possibile utilizzare un'altra unità di data/ora con il numero appropriato di tale unità. Tuttavia, questo approccio dovrebbe essere usato con cautela, poiché potrebbe portare a risultati imprevisti.

Esempio:

SELECT 
    DATE_ADD('2021-05-01', INTERVAL 365 DAY) AS Days,
    DATE_ADD('2021-05-01', INTERVAL 52 WEEK) AS Weeks,
    DATE_ADD('2021-05-01', INTERVAL 12 MONTH) AS Months,
    DATE_ADD('2021-05-01', INTERVAL 1 YEAR) AS Years;

Risultato:

+------------+------------+------------+------------+
| Days       | Weeks      | Months     | Years      |
+------------+------------+------------+------------+
| 2022-05-01 | 2022-04-30 | 2022-05-01 | 2022-05-01 |
+------------+------------+------------+------------+

In questo caso, l'aggiunta di 52 settimane ha avuto un risultato diverso rispetto all'utilizzo di 365 giorni, 12 mesi e 1 anno.

Se spostiamo la data in avanti di un paio d'anni, otteniamo ancora più incoerenze:

SELECT 
    DATE_ADD('2023-05-01', INTERVAL 365 DAY) AS Days,
    DATE_ADD('2023-05-01', INTERVAL 52 WEEK) AS Weeks,
    DATE_ADD('2023-05-01', INTERVAL 12 MONTH) AS Months,
    DATE_ADD('2023-05-01', INTERVAL 1 YEAR) AS Years;

Risultato:

+------------+------------+------------+------------+
| Days       | Weeks      | Months     | Years      |
+------------+------------+------------+------------+
| 2024-04-30 | 2024-04-29 | 2024-05-01 | 2024-05-01 |
+------------+------------+------------+------------+

Questa volta usando MONTH e YEAR restituisce lo stesso risultato, ma DAY e WEEK restituisce due date diverse, entrambe diverse dal MONTH e YEAR risultati.

Il ADDDATE() Funzione

Un altro modo per aggiungere un anno 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 YEAR);

Risultato:

+----------------------------------------+
| ADDDATE('2021-05-01', INTERVAL 1 YEAR) |
+----------------------------------------+
| 2022-05-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 YEAR);

Risultato:

+------------------------------------------+
| DATE_SUB('2021-05-01', INTERVAL -1 YEAR) |
+------------------------------------------+
| 2022-05-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 YEAR);

Risultato:

+-----------------------------------------+
| SUBDATE('2021-05-01', INTERVAL -1 YEAR) |
+-----------------------------------------+
| 2022-05-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 anni alla nostra data.

Esempio:

SELECT '2021-05-01' + INTERVAL 1 YEAR;

Risultato:

+--------------------------------+
| '2021-05-01' + INTERVAL 1 YEAR |
+--------------------------------+
| 2022-05-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 YEAR;

Risultato:

+---------------------------------+
| '2021-05-01' - INTERVAL -1 YEAR |
+---------------------------------+
| 2022-05-01                      |
+---------------------------------+

Altre unità di data e ora

Gli esempi precedenti aggiungono un numero di anni 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.