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