MariaDB предоставя няколко начина за извършване на аритметика на дати. Това включва добавяне или изваждане на месец (или много месеци) от дадена дата.
Ето 6 начина да добавите месец към дата в MariaDB.
Бонус актуализация :Сега добавих 7-ми начин за добавяне на месец към дата в края на тази статия. Така че предполагам, че сега има 7 начина да добавите месец към дата в MariaDB 🙂
DATE_ADD() Функция
DATE_ADD() функцията ви позволява да добавите сума към дата. Например можете да добавите няколко дни, седмици, месеци, години и т.н.
Пример:
SELECT DATE_ADD('2021-05-01', INTERVAL 1 MONTH); Резултат:
+------------------------------------+| DATE_ADD('2021-05-01', ИНТЕРВАЛ 1 МЕСЕЦ) |+---------------------------------- --------+| 2021-06-01 |+--------------------------------------------------+
Ако трябва да добавите повече от един месец, просто използвайте това число вместо 1 . Въпреки това, MONTH ключовата дума остава не в множествено число, независимо:
SELECT DATE_ADD('2021-05-01', INTERVAL 2 MONTH); Резултат:
+------------------------------------+| DATE_ADD('2021-05-01', ИНТЕРВАЛ 2 МЕСЕЦА) |+---------------------------------- --------+| 2021-07-01 |+--------------------------------------------------+ Възможно е също да използвате друга единица за дата/час с подходящия номер на тази единица. Следователно можете да посочите определен брой дни, като 30 или 31.
Пример:
SELECT DATE_ADD('2021-05-01', INTERVAL 31 DAY); Резултат:
+-----------------------------------+| DATE_ADD('2021-05-01', ИНТЕРВАЛ 31 ДЕН) |+---------------------------------- -------+| 2021-06-01 |+-------------------------------------------------+предварително>
Когато използвате дни, дали ще се окаже точно месец или не, ще зависи от въпросния месец. В горния пример можех да предвидя 30 дни, но това би ни запазило в рамките на същия месец:
SELECT DATE_ADD('2021-05-01', INTERVAL 30 DAY);
Резултат:
+-----------------------------------+| DATE_ADD('2021-05-01', ИНТЕРВАЛ 30 ДЕН) |+---------------------------------- -------+| 31.05.2021 |+-------------------------------------------------+предварително>
Така че, ако всъщност искате да добавите месец, тогава MONTH единица е много по-лесно, отколкото да се опитвате да определите колко дни да добавите.
ADDDATE() Функция
Друг начин да добавите месец към дата е да използвате ADDDATE() функция. Тази функция има два синтаксиса. Един синтаксис ви позволява да добавите няколко дни към дата. Другият синтаксис е същият като при DATE_ADD() функция по-горе. Когато използвате този синтаксис, ADDDATE() е синоним на DATE_ADD() .
Пример:
SELECT ADDDATE('2021-05-01', INTERVAL 1 MONTH);
Резултат:
+-----------------------------------+| ADDDATE('2021-05-01', ИНТЕРВАЛ 1 МЕСЕЦ) |+---------------------------------- -------+| 2021-06-01 |+-------------------------------------------------+предварително> DATE_SUB() Функция
DATE_SUB() функцията ви позволява да изваждате сума към дата. Ако обаче предоставите отрицателна стойност за изваждане, тя накрая се добавя до датата.
Пример:
SELECT DATE_SUB('2021-05-01', INTERVAL -1 MONTH);
Резултат:
+------------------------------------+| DATE_SUB('2021-05-01', ИНТЕРВАЛ -1 МЕСЕЦ) |+-------------------------------- ----------+| 2021-06-01 |+--------------------------------------------------- + SUBDATE() Функция
SUBDATE() функцията е синоним на DATE_SUB() когато използвате следния синтаксис.
Пример:
SELECT SUBDATE('2021-05-01', INTERVAL -1 MONTH);
Резултат:
+------------------------------------+| SUBDATE('2021-05-01', ИНТЕРВАЛ -1 МЕСЕЦ) |+-------------------------------- ---------+| 2021-06-01 |+--------------------------------------------------+ + Оператор
Друга възможност е да използвате + оператор.
+ Операторът се използва за извършване на добавяне и можем да го използваме за дати, заедно с приложимата единица дата/час, за да добавим определен брой месеци към нашата дата.
Пример:
SELECT '2021-05-01' + INTERVAL 1 MONTH;
Резултат:
+--------------------------------+| '2021-05-01' + ИНТЕРВАЛ 1 МЕСЕЦ |+--------------------------------+| 01.06.2021 |+--------------------------------+
- Оператор
- Операторът може да се използва за изваждане на сума от дата. Но ако се използва за изваждане на отрицателно число, резултатът е положителна сума, добавена към датата:
SELECT '2021-05-01' - INTERVAL -1 MONTH;
Резултат:
+---------------------------------+| '2021-05-01' - ИНТЕРВАЛ -1 МЕСЕЦ |+----------------------------------+| 01.06.2021 |+---------------------------------+
Бонус:ADD_MONTHS() Функция
Откакто за първи път написах тази статия, в MariaDB беше въведена нова функция специално за добавяне на месеци към дата.
Функцията се нарича ADD_MONTHS() , и беше въведен в MariaDB 10.6.1, за да подобри съвместимостта с Oracle.
Така че предполагам, че тази статия трябва да се нарича 7 начина да добавите месец към дата... 🙂
Пример:
SELECT ADD_MONTHS('2020-01-01', 3);
Резултат:
+----------------------------+| ADD_MONTHS('2020-01-01', 3) |+----------------------------+| 2020-04-01 |+----------------------------+ Други единици за дата и час
Горните примери добавят няколко месеца към датата, но можем да използваме същите техники, за да добавим всяка единица дата/час. Вижте Мерките за дата и час в MariaDB за пълен списък с единици за дата/час, които могат да се използват с горните функции и оператор.