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