I MariaDB, SUBTIME()
är en inbyggd datum- och tidsfunktion som subtraherar ett belopp från ett uttryck för tid eller datum.
Det låter dig ändra ett uttryck för tid eller datum och tid genom att skicka det uttrycket, såväl som ett tidsuttryck att subtrahera från uttrycket. Du kan skicka ett negativt belopp om du behöver lägga till till tidsuttrycket.
Syntax
Syntaxen ser ut så här:
SUBTIME(expr1,expr2)
Där expr1
är ett tid- eller datetime-uttryck och expr2
är ett tidsuttryck.
Exempel
Här är ett exempel:
SELECT SUBTIME('10:00:00', '02:30:45');
Resultat:
+---------------------------------+ | SUBTIME('10:00:00', '02:30:45') | +---------------------------------+ | 07:29:15 | +---------------------------------+
Uttryck för datum och tid
Det första argumentet kan också vara ett datetime-uttryck:
SELECT SUBTIME('2021-05-01 10:00:00', '22:30:45');
Resultat:
+--------------------------------------------+ | SUBTIME('2021-05-01 10:00:00', '22:30:45') | +--------------------------------------------+ | 2021-04-30 11:29:15 | +--------------------------------------------+
I det här fallet subtraherades tillräckligt med tid för att dra tillbaka datumet till föregående dag och månad.
Tidsuttryck i ett lösare format
MariaDB tillåter tilldelning av tider i lösare format, som att tappa inledande nollor och ge ett värde för dagen.
Därför kan vi göra detta:
SELECT SUBTIME('2021-05-01 10:00:00', '366 1:1:1.123456');
Resultat:
+----------------------------------------------------+ | SUBTIME('2021-05-01 10:00:00', '366 1:1:1.123456') | +----------------------------------------------------+ | 2020-04-30 08:58:58.876544 | +----------------------------------------------------+
Negativa intervall
Ange ett negativt intervall för dagdelen som läggs till det beloppet motsvarar tiden/datum och tid.
Exempel:
SELECT SUBTIME('2021-05-01 10:00:00', '-366 1:1:1.123456');
Resultat:
+-----------------------------------------------------+ | SUBTIME('2021-05-01 10:00:00', '-366 1:1:1.123456') | +-----------------------------------------------------+ | 2022-05-02 11:01:01.123456 | +-----------------------------------------------------+
Nollargument
Om något argument är null
, resultatet är null
:
SELECT
SUBTIME('10:00:00', null),
SUBTIME(null, '02:30:45'),
SUBTIME(null, null);
Resultat:
+---------------------------+---------------------------+---------------------+ | SUBTIME('10:00:00', null) | SUBTIME(null, '02:30:45') | SUBTIME(null, null) | +---------------------------+---------------------------+---------------------+ | NULL | NULL | NULL | +---------------------------+---------------------------+---------------------+
Argument saknas
Anropar SUBTIME()
med fel antal argument, eller utan att skicka några argument resulterar i ett fel:
SELECT SUBTIME();
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SUBTIME'