In MariaDB, SUBTIME()
is een ingebouwde datum- en tijdfunctie die een bedrag aftrekt van een tijd- of datetime-expressie.
Hiermee kunt u een tijd- of datetime-uitdrukking wijzigen door die uitdrukking door te geven, evenals een tijduitdrukking om van die uitdrukking af te trekken. U kunt een negatief bedrag doorgeven als u moet toevoegen naar de tijduitdrukking.
Syntaxis
De syntaxis gaat als volgt:
SUBTIME(expr1,expr2)
Waar expr1
is een tijd- of datetime-expressie, en expr2
is een tijduitdrukking.
Voorbeeld
Hier is een voorbeeld:
SELECT SUBTIME('10:00:00', '02:30:45');
Resultaat:
+---------------------------------+ | SUBTIME('10:00:00', '02:30:45') | +---------------------------------+ | 07:29:15 | +---------------------------------+
Datetime-expressies
Het eerste argument kan ook een datetime-expressie zijn:
SELECT SUBTIME('2021-05-01 10:00:00', '22:30:45');
Resultaat:
+--------------------------------------------+ | SUBTIME('2021-05-01 10:00:00', '22:30:45') | +--------------------------------------------+ | 2021-04-30 11:29:15 | +--------------------------------------------+
In dit geval werd er voldoende tijd afgetrokken om de datum terug te brengen naar de vorige dag en maand.
Tijduitdrukkingen in een lossere indeling
MariaDB maakt het toewijzen van tijden in lossere formaten mogelijk, zoals het laten vallen van voorloopnullen en het geven van een waarde voor de dag.
Daarom kunnen we dit doen:
SELECT SUBTIME('2021-05-01 10:00:00', '366 1:1:1.123456');
Resultaat:
+----------------------------------------------------+ | SUBTIME('2021-05-01 10:00:00', '366 1:1:1.123456') | +----------------------------------------------------+ | 2020-04-30 08:58:58.876544 | +----------------------------------------------------+
Negatieve intervallen
Het verstrekken van een negatief interval voor het daggedeelte voegt toe dat komt neer op de tijd/datumtijd.
Voorbeeld:
SELECT SUBTIME('2021-05-01 10:00:00', '-366 1:1:1.123456');
Resultaat:
+-----------------------------------------------------+ | SUBTIME('2021-05-01 10:00:00', '-366 1:1:1.123456') | +-----------------------------------------------------+ | 2022-05-02 11:01:01.123456 | +-----------------------------------------------------+
Nullargumenten
Als een argument null
is , het resultaat is null
:
SELECT
SUBTIME('10:00:00', null),
SUBTIME(null, '02:30:45'),
SUBTIME(null, null);
Resultaat:
+---------------------------+---------------------------+---------------------+ | SUBTIME('10:00:00', null) | SUBTIME(null, '02:30:45') | SUBTIME(null, null) | +---------------------------+---------------------------+---------------------+ | NULL | NULL | NULL | +---------------------------+---------------------------+---------------------+
Ontbrekend argument
Bellen SUBTIME()
met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten resulteert in een fout:
SELECT SUBTIME();
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SUBTIME'