Ето някои опции за изваждане на една или повече секунди от израз за дата и час в 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()
функция (предоставянето на отрицателна сума ще извади тази сума от стойността за дата и час).