В MariaDB, ADD_MONTHS()
е вградена функция за дата и час, която добавя определен брой месеци към дата и връща резултата.
Датата може да бъде стойност за дата, час или време.
Тази функция е въведена в MariaDB 10.6.1 за подобряване на съвместимостта с Oracle. Има поне 6 други начина за добавяне на месеци към дата в MariaDB.
Синтаксис
Синтаксисът е така:
ADD_MONTHS(date, months)
Където date
е датата и months
е броят на месеците за добавяне към него.
Пример
Ето един пример:
SELECT ADD_MONTHS('2020-01-01', 3);
Резултат:
+-----------------------------+ | ADD_MONTHS('2020-01-01', 3) | +-----------------------------+ | 2020-04-01 | +-----------------------------+
Извадете месеците
За да извадите месеците от дата, използвайте отрицателна стойност за втория аргумент.
Пример:
SELECT ADD_MONTHS('2020-01-01', -3);
Резултат:
+------------------------------+ | ADD_MONTHS('2020-01-01', -3) | +------------------------------+ | 2019-10-01 | +------------------------------+
Числов контекст
Датата може да бъде предоставена в цифров вид, ако е необходимо:
SELECT ADD_MONTHS(20200101, 3);
Резултат:
+-------------------------+ | ADD_MONTHS(20200101, 3) | +-------------------------+ | 2020-04-01 | +-------------------------+
Невалидни дати
Ако датата е невалидна, ADD_MONTHS()
връща null
с предупреждение:
SELECT ADD_MONTHS('2020-01-51', 3);
Резултат:
+-----------------------------+ | ADD_MONTHS('2020-01-51', 3) | +-----------------------------+ | NULL | +-----------------------------+ 1 row in set, 1 warning (0.003 sec)
Нека проверим предупреждението:
SHOW WARNINGS;
Резултат:
+---------+------+----------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------+ | Warning | 1292 | Incorrect datetime value: '2020-01-51' | +---------+------+----------------------------------------+
Нулеви аргументи
ADD_MONTHS()
връща null
ако някой аргумент е null
:
SELECT ADD_MONTHS('2020-01-01', null);
Резултат:
+--------------------------------+ | ADD_MONTHS('2020-01-01', null) | +--------------------------------+ | NULL | +--------------------------------+
Невалиден брой аргументи
Предаването на невалиден брой аргументи води до грешка:
SELECT ADD_MONTHS(3);
Резултат:
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