Zde je několik možností pro odečtení jedné nebo více hodin od hodnoty data a času v MariaDB.
SUBTIME()
Funkce
SUBTIME()
odečte dané množství času od hodnoty času nebo data a času.
Příklad:
SELECT SUBTIME('2021-05-01 10:00:00', '01:00:00');
Výsledek:
+--------------------------------------------+ | SUBTIME('2021-05-01 10:00:00', '01:00:00') | +--------------------------------------------+ | 2021-05-01 09:00:00 | +--------------------------------------------+
Můžete také změnit další časové jednotky, jako jsou minuty, sekundy atd.
DATE_SUB()
Funkce
DATE_SUB()
Funkce umožňuje odečíst určitý počet jednotek data/času od výrazu data nebo data a času. Proto můžeme tuto funkci použít k vrácení hodnoty datetime mínus určitý počet hodin.
Příklad:
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL 1 HOUR);
Výsledek:
+--------------------------------------------------+ | DATE_SUB('2021-05-01 10:00:00', INTERVAL 1 HOUR) | +--------------------------------------------------+ | 2021-05-01 09:00:00 | +--------------------------------------------------+
Můžete také použít složené jednotky data a času. Můžete například dělat hodiny a minuty najednou.
Příklad:
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL '15:30' HOUR_MINUTE);
Výsledek:
+---------------------------------------------------------------+ | DATE_SUB('2021-05-01 10:00:00', INTERVAL '15:30' HOUR_MINUTE) | +---------------------------------------------------------------+ | 2021-04-30 18:30:00 | +---------------------------------------------------------------+
Předávání jen data
Pokud poskytneme pouze hodnotu data, stane se toto:
SELECT DATE_SUB('2021-05-01', INTERVAL 1 HOUR);
Výsledek:
+-----------------------------------------+ | DATE_SUB('2021-05-01', INTERVAL 1 HOUR) | +-----------------------------------------+ | 2021-04-30 23:00:00 | +-----------------------------------------+
Předpokládá, že čas začíná v 00:00:00, takže HOUR
částka se od toho odečte.
Více hodin
Pokud potřebujete odečíst více než jednu hodinu, použijte toto číslo místo 1
. Nicméně HOUR
klíčové slovo zůstává bez množného čísla bez ohledu na:
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL 2 HOUR);
Výsledek:
+--------------------------------------------------+ | DATE_SUB('2021-05-01 10:00:00', INTERVAL 2 HOUR) | +--------------------------------------------------+ | 2021-05-01 08:00:00 | +--------------------------------------------------+
Operátor odečítání (-
)
Dalším způsobem, jak odečíst hodiny od výrazu datetime, je použití operátoru odčítání (-
), také známý jako operátor mínus.
Příklad:
SELECT '2021-05-01 10:00:00' - INTERVAL 48 HOUR;
Výsledek:
+------------------------------------------+ | '2021-05-01 10:00:00' - INTERVAL 48 HOUR | +------------------------------------------+ | 2021-04-29 10:00:00 | +------------------------------------------+
Operátor přidání (+
)
Alternativně můžete použít operátor sčítání (+
) spolu se zápornou částkou.
Příklad:
SELECT '2021-05-01 10:00:00' + INTERVAL -48 HOUR;
Výsledek:
+-------------------------------------------+ | '2021-05-01 10:00:00' + INTERVAL -48 HOUR | +-------------------------------------------+ | 2021-04-29 10:00:00 | +-------------------------------------------+
Další způsoby odečítání hodin
Zde je několik dalších přístupů, které můžete použít k odečtení jedné nebo více hodin od hodnoty datetime:
ADDTIME()
funkce (zadáním záporné částky se tato částka odečte od hodnoty datetime).SUBDATE()
funkce (toto je synonymum proDATE_SUB()
při použití se stejnou syntaxí).DATE_ADD()
funkce (zadáním záporné částky se tato částka odečte od hodnoty datetime).ADDDATE()
funkce (zadáním záporné částky se tato částka odečte od hodnoty datetime).