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 за пълен списък с единици за дата/час, които могат да се използват с горните функции и оператор.