V MariaDB, SUBTIME() je vestavěná funkce data a času, která odečítá částku z výrazu času nebo data a času.
Umožňuje vám změnit výraz času nebo data a času předáním tohoto výrazu a také výraz času, který se od tohoto výrazu odečte. Pokud potřebujete přidat, můžete předat zápornou částku k časovému výrazu.
Syntaxe
Syntaxe vypadá takto:
SUBTIME(expr1,expr2)
Kde expr1 je výraz čas nebo datum a čas a expr2 je časový výraz.
Příklad
Zde je příklad:
SELECT SUBTIME('10:00:00', '02:30:45'); Výsledek:
+---------------------------------+
| SUBTIME('10:00:00', '02:30:45') |
+---------------------------------+
| 07:29:15 |
+---------------------------------+ Výrazy data a času
První argument může být také výraz datetime:
SELECT SUBTIME('2021-05-01 10:00:00', '22:30:45'); Výsledek:
+--------------------------------------------+
| SUBTIME('2021-05-01 10:00:00', '22:30:45') |
+--------------------------------------------+
| 2021-04-30 11:29:15 |
+--------------------------------------------+ V tomto případě bylo odečteno dostatečné množství času k vytažení data zpět na předchozí den a měsíc.
Časové výrazy ve volnějším formátu
MariaDB umožňuje přiřazení časů ve volnějších formátech, jako je vypuštění úvodních nul a poskytnutí hodnoty pro den.
Proto můžeme udělat toto:
SELECT SUBTIME('2021-05-01 10:00:00', '366 1:1:1.123456'); Výsledek:
+----------------------------------------------------+
| SUBTIME('2021-05-01 10:00:00', '366 1:1:1.123456') |
+----------------------------------------------------+
| 2020-04-30 08:58:58.876544 |
+----------------------------------------------------+ Záporné intervaly
Zadání záporného intervalu pro část dne přidá to odpovídá času/datu a času.
Příklad:
SELECT SUBTIME('2021-05-01 10:00:00', '-366 1:1:1.123456'); Výsledek:
+-----------------------------------------------------+
| SUBTIME('2021-05-01 10:00:00', '-366 1:1:1.123456') |
+-----------------------------------------------------+
| 2022-05-02 11:01:01.123456 |
+-----------------------------------------------------+ Nulové argumenty
Pokud je některý argument null , výsledkem je null :
SELECT
SUBTIME('10:00:00', null),
SUBTIME(null, '02:30:45'),
SUBTIME(null, null); Výsledek:
+---------------------------+---------------------------+---------------------+
| SUBTIME('10:00:00', null) | SUBTIME(null, '02:30:45') | SUBTIME(null, null) |
+---------------------------+---------------------------+---------------------+
| NULL | NULL | NULL |
+---------------------------+---------------------------+---------------------+ Chybí argument
Volání SUBTIME() s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:
SELECT SUBTIME(); Výsledek:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SUBTIME'