W MariaDB, SUBTIME()
to wbudowana funkcja daty i godziny, która odejmuje kwotę od wyrażenia godziny lub daty i godziny.
Umożliwia zmianę wyrażenia godziny lub daty i godziny przez przekazanie tego wyrażenia, a także wyrażenia godziny do odjęcia od tego wyrażenia. Możesz przekazać kwotę ujemną, jeśli chcesz dodać do wyrażenia czasu.
Składnia
Składnia wygląda tak:
SUBTIME(expr1,expr2)
Gdzie expr1
jest wyrażeniem czasu lub daty i godziny, a expr2
jest wyrażeniem czasu.
Przykład
Oto przykład:
SELECT SUBTIME('10:00:00', '02:30:45');
Wynik:
+---------------------------------+ | SUBTIME('10:00:00', '02:30:45') | +---------------------------------+ | 07:29:15 | +---------------------------------+
Wyrażenia daty i godziny
Pierwszy argument może być również wyrażeniem daty i godziny:
SELECT SUBTIME('2021-05-01 10:00:00', '22:30:45');
Wynik:
+--------------------------------------------+ | SUBTIME('2021-05-01 10:00:00', '22:30:45') | +--------------------------------------------+ | 2021-04-30 11:29:15 | +--------------------------------------------+
W tym przypadku odjęto wystarczającą ilość czasu, aby cofnąć datę do poprzedniego dnia i miesiąca.
Wyrażenia czasowe w luźniejszym formacie
MariaDB umożliwia przypisanie czasów w luźniejszych formatach, takich jak pominięcie wiodących zer i podanie wartości dla dnia.
Dlatego możemy to zrobić:
SELECT SUBTIME('2021-05-01 10:00:00', '366 1:1:1.123456');
Wynik:
+----------------------------------------------------+ | SUBTIME('2021-05-01 10:00:00', '366 1:1:1.123456') | +----------------------------------------------------+ | 2020-04-30 08:58:58.876544 | +----------------------------------------------------+
Przedziały ujemne
Zapewnienie ujemnego interwału dla porcji dnia dodaje jest to godzina/data i godzina.
Przykład:
SELECT SUBTIME('2021-05-01 10:00:00', '-366 1:1:1.123456');
Wynik:
+-----------------------------------------------------+ | SUBTIME('2021-05-01 10:00:00', '-366 1:1:1.123456') | +-----------------------------------------------------+ | 2022-05-02 11:01:01.123456 | +-----------------------------------------------------+
Argumenty zerowe
Jeśli jakikolwiek argument ma wartość null
, wynik to null
:
SELECT
SUBTIME('10:00:00', null),
SUBTIME(null, '02:30:45'),
SUBTIME(null, null);
Wynik:
+---------------------------+---------------------------+---------------------+ | SUBTIME('10:00:00', null) | SUBTIME(null, '02:30:45') | SUBTIME(null, null) | +---------------------------+---------------------------+---------------------+ | NULL | NULL | NULL | +---------------------------+---------------------------+---------------------+
Brakujący argument
Wywołanie SUBTIME()
z niewłaściwą liczbą argumentów lub bez przekazania jakichkolwiek argumentów powoduje błąd:
SELECT SUBTIME();
Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SUBTIME'