В MariaDB, SUBTIME()
е вградена функция за дата и час, която изважда сума от израз за време или дата и час.
Позволява ви да промените израз за време или дата и час, като предадете този израз, както и израз за време, който да извадите от този израз. Можете да подадете отрицателна сума, ако трябва да добавите към израза за време.
Синтаксис
Синтаксисът е така:
SUBTIME(expr1,expr2)
Където expr1
е израз за време или дата и час и expr2
е времеви израз.
Пример
Ето един пример:
SELECT SUBTIME('10:00:00', '02:30:45');
Резултат:
+---------------------------------+ | SUBTIME('10:00:00', '02:30:45') | +---------------------------------+ | 07:29:15 | +---------------------------------+
Изрази за дата и час
Първият аргумент може също да бъде израз за дата и час:
SELECT SUBTIME('2021-05-01 10:00:00', '22:30:45');
Резултат:
+--------------------------------------------+ | SUBTIME('2021-05-01 10:00:00', '22:30:45') | +--------------------------------------------+ | 2021-04-30 11:29:15 | +--------------------------------------------+
В този случай беше извадено достатъчно време, за да се върне датата към предишния ден и месец.
Изрази за време в по-свободен формат
MariaDB позволява присвояване на времена в по-свободни формати, като например премахване на водещи нули и предоставяне на стойност за деня.
Следователно можем да направим това:
SELECT SUBTIME('2021-05-01 10:00:00', '366 1:1:1.123456');
Резултат:
+----------------------------------------------------+ | SUBTIME('2021-05-01 10:00:00', '366 1:1:1.123456') | +----------------------------------------------------+ | 2020-04-30 08:58:58.876544 | +----------------------------------------------------+
Отрицателни интервали
Предоставяне на отрицателен интервал за дневната част добавя това се равнява на час/дата и час.
Пример:
SELECT SUBTIME('2021-05-01 10:00:00', '-366 1:1:1.123456');
Резултат:
+-----------------------------------------------------+ | SUBTIME('2021-05-01 10:00:00', '-366 1:1:1.123456') | +-----------------------------------------------------+ | 2022-05-02 11:01:01.123456 | +-----------------------------------------------------+
Нулеви аргументи
Ако някой аргумент е null
, резултатът е null
:
SELECT
SUBTIME('10:00:00', null),
SUBTIME(null, '02:30:45'),
SUBTIME(null, null);
Резултат:
+---------------------------+---------------------------+---------------------+ | SUBTIME('10:00:00', null) | SUBTIME(null, '02:30:45') | SUBTIME(null, null) | +---------------------------+---------------------------+---------------------+ | NULL | NULL | NULL | +---------------------------+---------------------------+---------------------+
Липсващ аргумент
Извикване на SUBTIME()
с грешен брой аргументи или без подаване на аргументи води до грешка:
SELECT SUBTIME();
Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SUBTIME'