Ето някои опции за изваждане на една или повече секунди от израз за дата и час в MariaDB.
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 09:59:30 |
+--------------------------------------------+ Можете също да промените другите единици за време, като часове, минути и т.н.
DATE_SUB() Функция
DATE_SUB() функцията ви позволява да извадите определен брой единици дата/час от израз за дата или час. Следователно можем да използваме тази функция, за да върнем стойността за дата и час, минус определен брой секунди.
Пример:
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL 30 SECOND); Резултат:
+-----------------------------------------------------+
| DATE_SUB('2021-05-01 10:00:00', INTERVAL 30 SECOND) |
+-----------------------------------------------------+
| 2021-05-01 09:59:30 |
+-----------------------------------------------------+
Обърнете внимание, че SECOND ключовата дума остава не в множествено число, независимо дали изваждате една секунда или повече.
Можете също да използвате съставни единици за дата и час. Например, можете да правите минути и секунди наведнъж.
Пример:
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL '15:30' MINUTE_SECOND); Резултат:
+-----------------------------------------------------------------+
| DATE_SUB('2021-05-01 10:00:00', INTERVAL '15:30' MINUTE_SECOND) |
+-----------------------------------------------------------------+
| 2021-05-01 09:44:30 |
+-----------------------------------------------------------------+ Предаване само на датата
Ето какво се случва, ако предоставим само стойност за дата:
SELECT DATE_SUB('2021-05-01', INTERVAL 30 SECOND); Резултат:
+--------------------------------------------+
| DATE_SUB('2021-05-01', INTERVAL 30 SECOND) |
+--------------------------------------------+
| 2021-04-30 23:59:30 |
+--------------------------------------------+
Предполага се, че времето започва от 00:00:00 и така SECOND сумата се изважда от това.
Операторът за изваждане (- )
Друг начин да извадите една или повече секунди от стойност за дата и час е да използвате оператора за изваждане (- ), известен също като оператор минус.
Пример:
SELECT '2021-05-01 10:00:00' - INTERVAL 30 SECOND; Резултат:
+--------------------------------------------+ | '2021-05-01 10:00:00' - INTERVAL 30 SECOND | +--------------------------------------------+ | 2021-05-01 09:59:30 | +--------------------------------------------+
Операторът за събиране (+ )
Като алтернатива можете да използвате оператора за добавяне (+ ) заедно с отрицателна сума.
Пример:
SELECT '2021-05-01 10:00:00' + INTERVAL -30 SECOND; Резултат:
+---------------------------------------------+ | '2021-05-01 10:00:00' + INTERVAL -30 SECOND | +---------------------------------------------+ | 2021-05-01 09:59:30 | +---------------------------------------------+
Други начини за изваждане на секунди
Ето някои други подходи, които можете да използвате, за да извадите една или повече секунди от стойност за дата и час:
SUBTIME()функция.ADDTIME()функция (предоставянето на отрицателна сума ще извади тази сума от стойността за дата и час).SUBDATE()функция (това е синоним наDATE_SUB()когато се използва със същия синтаксис).DATE_ADD()функция (предоставянето на отрицателна сума ще извади тази сума от стойността за дата и час).ADDDATE()функция (предоставянето на отрицателна сума ще извади тази сума от стойността за дата и час).