MariaDB предоставя няколко начина за добавяне на година или определен брой години към дадена дата. Например, може да искате да добавите 1 година, 10 години, 30 години и т.н.
Ето 6 начина да добавите година към дата в MariaDB.
DATE_ADD() Функция
DATE_ADD() функцията ви позволява да добавите сума към дата. Например можете да добавите няколко дни, седмици, месеци, години и т.н.
Пример:
SELECT DATE_ADD('2021-05-01', INTERVAL 1 YEAR); Резултат:
+-----------------------------------+| DATE_ADD('2021-05-01', ИНТЕРВАЛ 1 ГОДИНА) |+---------------------------------- -------+| 2022-05-01 |+-------------------------------------------------+предварително>
Няма правило, което да гласи, че може да бъде само 1 година. Можете да добавите няколко години. Така или иначе, YEAR ключовата дума остава не в множествено число:
SELECT DATE_ADD('2021-05-01', INTERVAL 10 YEAR);
Резултат:
+------------------------------------+| DATE_ADD('2021-05-01', ИНТЕРВАЛ 10 ГОДИНИ) |+---------------------------------- --------+| 2031-05-01 |+--------------------------------------------------+
Възможно е също да използвате друга единица за дата/час с подходящия номер на тази единица. Този подход обаче трябва да се използва с повишено внимание, тъй като може да доведе до неочаквани резултати.
Пример:
SELECT
DATE_ADD('2021-05-01', INTERVAL 365 DAY) AS Days,
DATE_ADD('2021-05-01', INTERVAL 52 WEEK) AS Weeks,
DATE_ADD('2021-05-01', INTERVAL 12 MONTH) AS Months,
DATE_ADD('2021-05-01', INTERVAL 1 YEAR) AS Years;
Резултат:
+------------+------------+-----------+------- -----+| Дни | седмици | Месеци | Години |+------------+------------+-----------+-------- ----+| 2022-05-01 | 2022-04-30 | 2022-05-01 | 2022-05-01 |+------------+-----------+------------+----- --------+
В този случай добавянето на 52 седмици има различен резултат от използването на 365 дни, 12 месеца и 1 година.
Ако преместим датата с няколко години напред, получаваме още повече непоследователност:
SELECT
DATE_ADD('2023-05-01', INTERVAL 365 DAY) AS Days,
DATE_ADD('2023-05-01', INTERVAL 52 WEEK) AS Weeks,
DATE_ADD('2023-05-01', INTERVAL 12 MONTH) AS Months,
DATE_ADD('2023-05-01', INTERVAL 1 YEAR) AS Years;
Резултат:
+------------+------------+-----------+------- -----+| Дни | седмици | Месеци | Години |+------------+------------+-----------+-------- ----+| 30.04.2024 | 2024-04-29 | 2024-05-01 | 2024-05-01 |+------------+-----------+------------+----- --------+
Този път с помощта на MONTH и YEAR връща същия резултат, но DAY и WEEK връща две различни дати, като и двете са различни от MONTH и YEAR резултати.
ADDDATE() Функция
Друг начин да добавите година към дата е да използвате ADDDATE() функция. Тази функция има два синтаксиса. Един синтаксис ви позволява да добавите няколко дни към дата. Другият синтаксис е същият като при DATE_ADD() функция по-горе. Когато използвате този синтаксис, ADDDATE() е синоним на DATE_ADD() .
Пример:
SELECT ADDDATE('2021-05-01', INTERVAL 1 YEAR);
Резултат:
+---------------------------------------+| ADDDATE('2021-05-01', ИНТЕРВАЛ 1 ГОДИНА) |+---------------------------------- ------+| 2022-05-01 |+-------------------------------------------------+предварително> DATE_SUB() Функция
DATE_SUB() функцията ви позволява да изваждате сума към дата. Ако обаче предоставите отрицателна стойност за изваждане, тя накрая се добавя до датата.
Пример:
SELECT DATE_SUB('2021-05-01', INTERVAL -1 YEAR);
Резултат:
+------------------------------------+| DATE_SUB('2021-05-01', ИНТЕРВАЛ -1 ГОДИНА) |+-------------------------------- ---------+| 2022-05-01 |+--------------------------------------------------+ SUBDATE() Функция
SUBDATE() функцията е синоним на DATE_SUB() когато използвате следния синтаксис.
Пример:
SELECT SUBDATE('2021-05-01', INTERVAL -1 YEAR);
Резултат:
+-----------------------------------+| SUBDATE('2021-05-01', ИНТЕРВАЛ -1 ГОДИНА) |+-------------------------------- --------+| 2022-05-01 |+-------------------------------------------------+предварително>
+ Оператор
Друга възможност е да използвате + оператор.
+ Операторът се използва за извършване на събиране и можем да го използваме за дати, заедно с приложимата единица дата/час, за да добавим определен брой години към нашата дата.
Пример:
SELECT '2021-05-01' + INTERVAL 1 YEAR;
Резултат:
+--------------------------------+| '2021-05-01' + ИНТЕРВАЛ 1 ГОДИНА |+--------------------------------+| 2022-05-01 |+--------------------------------+
- Оператор
- Операторът може да се използва за изваждане на сума от дата. Но ако се използва за изваждане на отрицателно число, резултатът е положителна сума, добавена към датата:
SELECT '2021-05-01' - INTERVAL -1 YEAR;
Резултат:
+--------------------------------+| '2021-05-01' - ИНТЕРВАЛ -1 ГОДИНА |+--------------------------------+| 2022-05-01 |+--------------------------------+
Други единици за дата и час
Горните примери добавят няколко години към датата, но можем да използваме същите техники, за да добавим всяка единица дата/час. Вижте Мерките за дата и час в MariaDB за пълен списък с единици за дата/час, които могат да се използват с горните функции и оператор.