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