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