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