Existuje mnoho způsobů, jak provádět aritmetiku data v MariaDB. To zahrnuje přičtení nebo odečtení určitého počtu dané části data od hodnoty data nebo data a času.
V tomto článku uvádím 8 způsobů, jak přidat hodinu k hodnotě datetime v MariaDB.
DATE_ADD()
Funkce
DATE_ADD()
Funkce umožňuje přidat částku k výrazu datum nebo datum a čas. To zahrnuje přidání časových částí, jako je hodina.
Příklad:
SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 HOUR);
Výsledek:
+--------------------------------------------------+ | DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 HOUR) | +--------------------------------------------------+ | 2021-05-01 11:00:00 | +--------------------------------------------------+
V tomto případě jsem k výrazu datetime přidal jednu hodinu.
Pokud poskytnu pouze datum, stane se toto:
SELECT DATE_ADD('2021-05-01', INTERVAL 1 HOUR);
Výsledek:
+-----------------------------------------+ | DATE_ADD('2021-05-01', INTERVAL 1 HOUR) | +-----------------------------------------+ | 2021-05-01 01:00:00 | +-----------------------------------------+
Časová část je připojena k výsledku a předpokládá se, že počáteční čas byl 00:00:00
.
Pokud potřebujete přidat více než jednu hodinu, použijte toto číslo místo 1
. Všimněte si, že HOUR
klíčové slovo zůstává bez množného čísla bez ohledu na:
SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 2 HOUR);
Výsledek:
+--------------------------------------------------+ | DATE_ADD('2021-05-01 10:00:00', INTERVAL 2 HOUR) | +--------------------------------------------------+ | 2021-05-01 12:00:00 | +--------------------------------------------------+
Je také možné použít jinou jednotku data/času s příslušným číslem této jednotky. Proto můžete zadat určitý počet minut, například 60 nebo 120.
Příklad:
SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 60 MINUTE);
Výsledek:
+-----------------------------------------------------+ | DATE_ADD('2021-05-01 10:00:00', INTERVAL 60 MINUTE) | +-----------------------------------------------------+ | 2021-05-01 11:00:00 | +-----------------------------------------------------+
K přidání více jednotek můžete také použít složenou jednotku data a času. Pokud byste například chtěli přidat 1 hodinu a 30 minut, můžete to udělat takto:
SELECT
DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:30' HOUR_MINUTE);
Výsledek:
+--------------------------------------------------------------+ | DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:30' HOUR_MINUTE) | +--------------------------------------------------------------+ | 2021-05-01 11:30:00 | +--------------------------------------------------------------+
Úplný seznam jednotek data a času naleznete v části Jednotky data a času MariaDB.
ADDDATE()
Funkce
Dalším způsobem, jak přidat hodinu do výrazu datetime, je použít ADDDATE()
funkce. Tato funkce má dvě syntaxe:
- Jedna syntaxe vám umožňuje přidat k datu několik dní, což zde neděláme (pokud neplánujeme přidat 24 hodin).
- Další syntaxe je stejná jako u
DATE_ADD()
funkce výše. Při použití této syntaxeADDDATE()
je synonymem proDATE_ADD()
.
Příklad:
SELECT ADDDATE('2021-05-01 10:00:00', INTERVAL 1 HOUR);
Výsledek:
+-------------------------------------------------+ | ADDDATE('2021-05-01 10:00:00', INTERVAL 1 HOUR) | +-------------------------------------------------+ | 2021-05-01 11:00:00 | +-------------------------------------------------+
DATE_SUB()
Funkce
DATE_SUB()
funkce umožňuje odečíst částku k datu. Pokud však zadáte zápornou hodnotu k odečtení, skončí to tak, že bude přičteno k datu.
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 11:00:00 | +---------------------------------------------------+
SUBDATE()
Funkce
SUBDATE()
funkce je synonymem pro DATE_SUB()
při použití následující syntaxe.
Příklad:
SELECT SUBDATE('2021-05-01 10:00:00', INTERVAL -1 HOUR);
Výsledek:
+--------------------------------------------------+ | SUBDATE('2021-05-01 10:00:00', INTERVAL -1 HOUR) | +--------------------------------------------------+ | 2021-05-01 11:00:00 | +--------------------------------------------------+
Znaménko +
Operátor
Další možností je použít +
operátor.
+
Operátor se používá k provádění sčítání a můžeme jej použít v datech spolu s příslušnou jednotkou data/času k přidání určitého počtu hodin k našemu datu.
Příklad:
SELECT '2021-05-01 10:00:00' + INTERVAL 1 HOUR;
Výsledek:
+-----------------------------------------+ | '2021-05-01 10:00:00' + INTERVAL 1 HOUR | +-----------------------------------------+ | 2021-05-01 11:00:00 | +-----------------------------------------+
-
Operátor
-
operátor lze použít k odečtení částky od data. Ale pokud se používá k odečtení záporného čísla, výsledkem je kladná částka přidaná k datu:
SELECT '2021-05-01 10:00:00' - INTERVAL -1 HOUR;
Výsledek:
+------------------------------------------+ | '2021-05-01 10:00:00' - INTERVAL -1 HOUR | +------------------------------------------+ | 2021-05-01 11:00:00 | +------------------------------------------+
ADDTIME()
Funkce
Můžete použít ADDTIME()
funkce pro přidání počtu hodin k výrazu datum a čas.
Příklad:
SELECT ADDTIME('2021-05-01 10:30:45', '01:0:0');
Výsledek:
+------------------------------------------+ | ADDTIME('2021-05-01 10:30:45', '01:0:0') | +------------------------------------------+ | 2021-05-01 11:30:45 | +------------------------------------------+
Jednou z výhod této funkce je, že můžete změnit i jiné časové jednotky, jako jsou minuty, sekundy atd.
SUBTIME()
Funkce
Alternativně to můžete přepnout a použít SUBTIME()
se zápornou hodnotou, pokud si to přejete:
SELECT SUBTIME('2021-05-01 10:30:45', '-01:0:0');
Výsledek:
+-------------------------------------------+ | SUBTIME('2021-05-01 10:30:45', '-01:0:0') | +-------------------------------------------+ | 2021-05-01 11:30:45 | +-------------------------------------------+
Další jednotky data a času
Výše uvedené příklady přidávají k hodnotě datetime počet hodin, ale stejné techniky můžeme použít k přidání libovolné jednotky data/času. Úplný seznam jednotek data a času, které lze použít s výše uvedenými funkcemi a operátory, najdete v části MariaDB Date and Time Units.