В 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'