V MariaDB, ADD_MONTHS() je vestavěná funkce data a času, která k datu přidá daný počet měsíců a vrátí výsledek.
Datum může být datum, datum a čas nebo hodnota časového razítka.
Tato funkce byla představena v MariaDB 10.6.1 za účelem zlepšení kompatibility Oracle. Existuje alespoň 6 dalších způsobů, jak přidat měsíce k datu v MariaDB.
Syntaxe
Syntaxe vypadá takto:
ADD_MONTHS(date, months)
Kde date je datum a months je počet měsíců, které se k němu mají přidat.
Příklad
Zde je příklad:
SELECT ADD_MONTHS('2020-01-01', 3); Výsledek:
+-----------------------------+
| ADD_MONTHS('2020-01-01', 3) |
+-----------------------------+
| 2020-04-01 |
+-----------------------------+ Odečíst měsíce
Chcete-li od data odečíst měsíce, použijte pro druhý argument zápornou hodnotu.
Příklad:
SELECT ADD_MONTHS('2020-01-01', -3); Výsledek:
+------------------------------+
| ADD_MONTHS('2020-01-01', -3) |
+------------------------------+
| 2019-10-01 |
+------------------------------+ Číselný kontext
Datum lze v případě potřeby uvést v číselné podobě:
SELECT ADD_MONTHS(20200101, 3); Výsledek:
+-------------------------+ | ADD_MONTHS(20200101, 3) | +-------------------------+ | 2020-04-01 | +-------------------------+
Neplatná data
Pokud je datum neplatné, ADD_MONTHS() vrátí null s varováním:
SELECT ADD_MONTHS('2020-01-51', 3); Výsledek:
+-----------------------------+
| ADD_MONTHS('2020-01-51', 3) |
+-----------------------------+
| NULL |
+-----------------------------+
1 row in set, 1 warning (0.003 sec) Podívejme se na varování:
SHOW WARNINGS; Výsledek:
+---------+------+----------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------+ | Warning | 1292 | Incorrect datetime value: '2020-01-51' | +---------+------+----------------------------------------+
Nulové argumenty
ADD_MONTHS() vrátí null pokud je nějaký argument null :
SELECT ADD_MONTHS('2020-01-01', null); Výsledek:
+--------------------------------+
| ADD_MONTHS('2020-01-01', null) |
+--------------------------------+
| NULL |
+--------------------------------+ Neplatný počet argumentů
Předání neplatného počtu argumentů má za následek chybu:
SELECT ADD_MONTHS(3); Výsledek:
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