MariaDB предоставя много начини за извършване на аритметика за дати. Това включва добавяне или изваждане на определен брой от дадена част от дата от стойност на дата или час.
В тази статия представям 8 начина за добавяне на една или повече минути към стойност за дата и час в MariaDB.
DATE_ADD() Функция
DATE_ADD() функцията ви позволява да добавите сума към израз за дата или час. Това включва добавяне на части от време, като минути.
Пример:
SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 35 MINUTE); Резултат:
+-----------------------------------------------------+
| DATE_ADD('2021-05-01 10:00:00', INTERVAL 35 MINUTE) |
+-----------------------------------------------------+
| 2021-05-01 10:35:00 |
+-----------------------------------------------------+
В този случай добавих 35 минути към израза за дата и час. Имайте предвид, че MINUTE ключовата дума остава не в множествено число, независимо дали добавям една минута или повече.
Ето какво се случва, ако предоставя само датата:
SELECT DATE_ADD('2021-05-01', INTERVAL 35 MINUTE); Резултат:
+--------------------------------------------+
| DATE_ADD('2021-05-01', INTERVAL 35 MINUTE) |
+--------------------------------------------+
| 2021-05-01 00:35:00 |
+--------------------------------------------+
Частта от времето се добавя към резултата и се приема, че първоначалното време е 00:00:00 .
Когато добавяме 60 минути, можем да използваме HOUR ключова дума, ако предпочитаме:
SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 HOUR); Резултат:
+--------------------------------------------------+
| DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 HOUR) |
+--------------------------------------------------+
| 2021-05-01 11:00:00 |
+--------------------------------------------------+ Очевидно тази техника работи със 120 минути, 180 и т.н. Просто използвайте приложимия брой часове.
Можете също да използвате съставна единица за дата/час, за да добавите няколко единици. Например, ако искате да добавите 1 час и 30 минути, можете да направите това:
SELECT
DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:30' HOUR_MINUTE); Резултат:
+--------------------------------------------------------------+
| DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:30' HOUR_MINUTE) |
+--------------------------------------------------------------+
| 2021-05-01 11:30:00 |
+--------------------------------------------------------------+ Вижте Мерките за дата и час в MariaDB за пълен списък с единици за дата/час.
ADDDATE() Функция
Друг начин да добавите минути към израз за дата и час е да използвате ADDDATE() функция. Тази функция има два синтаксиса:
- Един синтаксис ви позволява да добавяте няколко дни към дата, което не е това, което правим тук (освен ако не планираме да добавяме минути в блокове от 1440, което е колко минути са на ден).
- Другият синтаксис е същият като при
DATE_ADD()функция по-горе. Когато използвате този синтаксис,ADDDATE()е синоним наDATE_ADD().
Пример:
SELECT ADDDATE('2021-05-01 10:00:00', INTERVAL 35 MINUTE); Резултат:
+----------------------------------------------------+
| ADDDATE('2021-05-01 10:00:00', INTERVAL 35 MINUTE) |
+----------------------------------------------------+
| 2021-05-01 10:35:00 |
+----------------------------------------------------+ DATE_SUB() Функция
DATE_SUB() функцията ви позволява да изваждате сума за израз за дата/дата и час. Ако обаче предоставите отрицателна стойност за изваждане, тя накрая се добавя до датата/часа.
Пример:
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL -35 MINUTE); Резултат:
+------------------------------------------------------+
| DATE_SUB('2021-05-01 10:00:00', INTERVAL -35 MINUTE) |
+------------------------------------------------------+
| 2021-05-01 10:35:00 |
+------------------------------------------------------+ SUBDATE() Функция
SUBDATE() функцията е синоним на DATE_SUB() когато използвате следния синтаксис.
Пример:
SELECT SUBDATE('2021-05-01 10:00:00', INTERVAL -35 MINUTE); Резултат:
+-----------------------------------------------------+
| SUBDATE('2021-05-01 10:00:00', INTERVAL -35 MINUTE) |
+-----------------------------------------------------+
| 2021-05-01 10:35:00 |
+-----------------------------------------------------+ + Оператор
Друга възможност е да използвате + оператор.
+ Операторът се използва за извършване на добавяне и можем да го използваме за дати, заедно с приложимата единица дата/час, за да добавим определен брой минути към нашата дата.
Пример:
SELECT '2021-05-01 10:00:00' + INTERVAL 35 MINUTE; Резултат:
+--------------------------------------------+ | '2021-05-01 10:00:00' + INTERVAL 35 MINUTE | +--------------------------------------------+ | 2021-05-01 10:35:00 | +--------------------------------------------+
- Оператор
- Операторът може да се използва за изваждане на сума от дата. Но ако се използва за изваждане на отрицателно число, резултатът е положителна сума, добавена към датата:
SELECT '2021-05-01 10:00:00' - INTERVAL -35 MINUTE; Резултат:
+---------------------------------------------+ | '2021-05-01 10:00:00' - INTERVAL -35 MINUTE | +---------------------------------------------+ | 2021-05-01 10:35:00 | +---------------------------------------------+
ADDTIME() Функция
Можете да използвате ADDTIME() функция за добавяне на определен брой минути към израз за дата и час.
Пример:
SELECT ADDTIME('2021-05-01 10:00:00', '00:30:00'); Резултат:
+--------------------------------------------+
| ADDTIME('2021-05-01 10:00:00', '00:30:00') |
+--------------------------------------------+
| 2021-05-01 10:30:00 |
+--------------------------------------------+ Едно от предимствата на тази функция е, че можете да промените и другите единици за време, като часове, секунди и т.н.
SUBTIME() Функция
Като алтернатива можете да го превключите и да използвате SUBTIME() с отрицателна стойност, ако желаете:
SELECT SUBTIME('2021-05-01 10:00:00', '-00:30:00'); Резултат:
+---------------------------------------------+
| SUBTIME('2021-05-01 10:00:00', '-00:30:00') |
+---------------------------------------------+
| 2021-05-01 10:30:00 |
+---------------------------------------------+ Други единици за дата и час
Горните примери добавят определен брой минути към стойността дата и час, но можем да използваме същите техники, за да добавим всяка единица дата/час. Вижте Мерките за дата и час в MariaDB за пълен списък с единици за дата/час, които могат да се използват с горните функции и оператори.