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