sql >> Databáze >  >> RDS >> MariaDB

8 způsobů, jak přidat hodinu k datu a času v MariaDB

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:

  1. 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).
  2. Další syntaxe je stejná jako u DATE_ADD() funkce výše. Při použití této syntaxe ADDDATE() je synonymem pro DATE_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.


  1. Jak aktualizovat sloupec na základě jiného sloupce v SQL

  2. MySQL:Co je reverzní verze LIKE?

  3. Jak používat GROUP BY ke zřetězení řetězců v MySQL?

  4. Zavolejte uloženou proceduru s jinou v Oracle