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

Come funziona ADD_MONTHS() in MariaDB

In MariaDB, ADD_MONTHS() è una funzione di data e ora incorporata che aggiunge un determinato numero di mesi a una data e restituisce il risultato.

La data può essere un valore di data, data e ora o timestamp.

Questa funzione è stata introdotta in MariaDB 10.6.1 per migliorare la compatibilità Oracle. Ci sono almeno altri 6 modi per aggiungere mesi a una data in MariaDB.

Sintassi

La sintassi è questa:

ADD_MONTHS(date, months)

Dove date è la data e months è il numero di mesi da aggiungere.

Esempio

Ecco un esempio:

SELECT ADD_MONTHS('2020-01-01', 3);

Risultato:

+-----------------------------+
| ADD_MONTHS('2020-01-01', 3) |
+-----------------------------+
| 2020-04-01                  |
+-----------------------------+

Sottrai mesi

Per sottrarre mesi da una data, utilizza un valore negativo per il secondo argomento.

Esempio:

SELECT ADD_MONTHS('2020-01-01', -3);

Risultato:

+------------------------------+
| ADD_MONTHS('2020-01-01', -3) |
+------------------------------+
| 2019-10-01                   |
+------------------------------+

Contesto numerico

La data può essere fornita in forma numerica se richiesta:

SELECT ADD_MONTHS(20200101, 3);

Risultato:

+-------------------------+
| ADD_MONTHS(20200101, 3) |
+-------------------------+
| 2020-04-01              |
+-------------------------+

Date non valide

Se la data non è valida, ADD_MONTHS() restituisce null con un avviso:

SELECT ADD_MONTHS('2020-01-51', 3);

Risultato:

+-----------------------------+
| ADD_MONTHS('2020-01-51', 3) |
+-----------------------------+
| NULL                        |
+-----------------------------+
1 row in set, 1 warning (0.003 sec)

Controlliamo l'avviso:

SHOW WARNINGS;

Risultato:

+---------+------+----------------------------------------+
| Level   | Code | Message                                |
+---------+------+----------------------------------------+
| Warning | 1292 | Incorrect datetime value: '2020-01-51' |
+---------+------+----------------------------------------+

Argomenti nulli

ADD_MONTHS() restituisce null se un argomento è null :

SELECT ADD_MONTHS('2020-01-01', null);

Risultato:

+--------------------------------+
| ADD_MONTHS('2020-01-01', null) |
+--------------------------------+
| NULL                           |
+--------------------------------+

Numero di argomenti non valido

Il passaggio di un numero di argomenti non valido genera un errore:

SELECT ADD_MONTHS(3);

Risultato:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1