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

Jak odečíst hodiny od hodnoty data a času v MariaDB

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 pro DATE_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).

  1. Co jsou sekvenční vs. paralelní streamy v Javě?

  2. java.sql.SQLException:ORA-03115:nepodporovaný datový typ sítě nebo reprezentace

  3. 10 nejčastějších dotazů o sledování výkonu serveru SQL Server

  4. Jak ADD_MONTHS() funguje v MariaDB