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