MariaDB предоставя няколко начина за добавяне на определен брой дни към дадена дата. Например, може да искате да добавите 10 дни към дата, или 30 дни, или дори само 1 ден. За щастие MariaDB прави това лесно.
Ето 8 начина да добавите брой дни към дадена дата в MariaDB.
ADDDATE() Функция
Нека започнем с ADDDATE() функция.
Тази функция има два различни синтаксиса. Първият синтаксис осигурява кратък начин за добавяне на определен брой дни към дата.
Пример:
SELECT ADDDATE('2021-05-01', 10); Резултат:
+---------------------+| ADDDATE('2021-05-01', 10) |+---------------------------+| 11.05.2021 г. |+--------------------------+ Използвайки този синтаксис, ние предоставяме два аргумента. Първият аргумент е датата, а вторият е броят на дните за добавяне към тази дата.
ADDDATE() Функция – Синтаксис 2
ADDDATE() функцията също има по-подробен синтаксис. Този синтаксис ни позволява да бъдем по-ясни в начина, по който добавяме дните към датата.
Пример:
SELECT ADDDATE('2021-05-01', INTERVAL 10 DAY); Резултат:
+---------------------------------------+| ADDDATE('2021-05-01', ИНТЕРВАЛ 10 ДНИ) |+---------------------------------- ------+| 2021-05-11 |+-------------------------------------------------+предварително>
В този случай използваме INTERVAL ключова дума, последвана от броя дни, последвана от DAY ключова дума.
INTERVAL ключова дума се използва за добавяне или изваждане на интервал от време към DATETIME , DATE или TIME стойност. Можем да го използваме за дати, заедно с приложимата единица дата/час, за да добавим определен брой дни към нашата дата. В нашия случай единицата дата/час е DAY , но може също толкова лесно да бъде MONTH , YEAR , HOUR и др., както и редица композитни единици.
DATE_ADD() Функция
DATE_ADD() функцията работи по същия начин като ADDDATE() когато използвате многословния синтаксис. Всъщност, когато използвате подробния синтаксис, ADDDATE() е синоним на DATE_ADD() .
Пример:
SELECT DATE_ADD('2021-05-01', INTERVAL 10 DAY);
Резултат:
+-----------------------------------+| DATE_ADD('2021-05-01', ИНТЕРВАЛ 10 ДЕН) |+---------------------------------- -------+| 2021-05-11 |+-------------------------------------------------+предварително> SUBDATE() Функция – Синтаксис 1
SUBDATE() функцията ви позволява да изваждате сума към дата. Ако обаче предоставите отрицателна стойност за изваждане, тя накрая се добавя до датата.
Пример:
SELECT SUBDATE('2021-05-01', -10);
Резултат:
+----------------------------+| SUBDATE('2021-05-01', -10) |+----------------------------+| 2021-05-11 |+----------------------------+ SUBDATE() Функция – Синтаксис 2
SUBDATE() функцията също има по-подробен синтаксис (подобно на ADDDATE() функция).
Пример:
SELECT SUBDATE('2021-05-01', INTERVAL -10 DAY);
Резултат:
+-----------------------------------+| SUBDATE('2021-05-01', ИНТЕРВАЛ -10 ДНИ) |+-------------------------------- --------+| 2021-05-11 |+-------------------------------------------------+предварително> DATE_SUB() Функция
Ето пример, който използва DATE_SUB() функция:
SELECT DATE_SUB('2021-05-01', INTERVAL -10 DAY);
Резултат:
+------------------------------------+| DATE_SUB('2021-05-01', ИНТЕРВАЛ -10 ДЕН) |+-------------------------------- ---------+| 2021-05-11 |+---------------------------------------------------+ + Оператор
Друга възможност е да използвате + оператор.
+ Операторът се използва за извършване на добавяне и можем да го използваме за дати, заедно с приложимата единица дата/час, за да добавим определен брой дни към нашата дата.
Пример:
SELECT '2021-05-01' + INTERVAL 10 DAY;
Резултат:
+--------------------------------+| '2021-05-01' + ИНТЕРВАЛ 10 ДНИ |+--------------------------------+| 11.05.2021 |+--------------------------------+
- Оператор
- Операторът може да се използва за изваждане на сума от дата. Ако обаче извадите отрицателно число, тогава към датата се добавя положителна сума:
SELECT '2021-05-01' - INTERVAL -10 DAY;
Резултат:
+--------------------------------+| '2021-05-01' - ИНТЕРВАЛ -10 ДЕН |+--------------------------------+| 2021-05-11 |+--------------------------------+
БОНУС:ADDTIME() Функция
Казах, че тази статия съдържа 8 начина за добавяне на дни към дата, но ето няколко бонус функции! Може би трябваше да нарека тази статия „10 начина за добавяне на дни към стойност за дата и час“.
Както и да е, можете да използвате ADDTIME() функция за добавяне на брой дни към израз за дата и час.
Пример:
SELECT ADDTIME('2021-05-01 10:30:45', '1 0:0:0');
Резултат:
+------------------------------------+| ADDTIME('2021-05-01 10:30:45', '1 0:0:0') |+------------------------ -------------------+| 2021-05-02 10:30:45 |+---------------------------------------------- -----+
Можете също да промените другите единици за време, като часове, минути, секунди и т.н.
Като алтернатива можете да го превключите и да използвате SUBTIME() с отрицателна стойност, ако желаете:
SELECT SUBTIME('2021-05-01 10:30:45', '-1 0:0:0');
Резултат:
+----------------------------------------------+| SUBTIME('2021-05-01 10:30:45', '-1 0:0:0') |+----------------------- ---------------------+| 2021-05-02 10:30:45 |+---------------------------------------------- ------+ Други единици за дата и час
Горните примери добавят няколко дни към датата, но можем да използваме същите техники, за да добавим всяка единица дата/час. Използваме DAY като единица дата/час, но както споменахме, може също толкова лесно да бъде MONTH , YEAR , HOUR и т.н., както и някоя от съставните единици.
Вижте Мерките за дата и час в MariaDB за пълен списък с единици за дата/час, които могат да се използват с горните функции и оператор.