No MariaDB,
SUBTIME() é uma função de data e hora integrada que subtrai um valor de uma expressão de hora ou data e hora. Ele permite que você altere uma expressão de hora ou data e hora passando essa expressão, bem como uma expressão de hora para subtrair dessa expressão. Você pode passar um valor negativo se precisar adicionar para a expressão do tempo.
Sintaxe
A sintaxe fica assim:
SUBTIME(expr1,expr2) Onde
expr1 é uma expressão de hora ou data e hora e expr2 é uma expressão de tempo. Exemplo
Aqui está um exemplo:
SELECT SUBTIME('10:00:00', '02:30:45'); Resultado:
+---------------------------------+
| SUBTIME('10:00:00', '02:30:45') |
+---------------------------------+
| 07:29:15 |
+---------------------------------+ Expressões de data e hora
O primeiro argumento também pode ser uma expressão de data e hora:
SELECT SUBTIME('2021-05-01 10:00:00', '22:30:45'); Resultado:
+--------------------------------------------+
| SUBTIME('2021-05-01 10:00:00', '22:30:45') |
+--------------------------------------------+
| 2021-04-30 11:29:15 |
+--------------------------------------------+ Nesse caso, foi subtraído tempo suficiente para puxar a data de volta para o dia e mês anteriores.
Expressões de tempo em um formato mais flexível
O MariaDB permite a atribuição de horários em formatos mais flexíveis, como eliminar zeros à esquerda e fornecer um valor para o dia.
Portanto, podemos fazer isso:
SELECT SUBTIME('2021-05-01 10:00:00', '366 1:1:1.123456'); Resultado:
+----------------------------------------------------+
| SUBTIME('2021-05-01 10:00:00', '366 1:1:1.123456') |
+----------------------------------------------------+
| 2020-04-30 08:58:58.876544 |
+----------------------------------------------------+ Intervalos negativos
Fornecer um intervalo negativo para a parte do dia adiciona que equivalem a hora/datahora.
Exemplo:
SELECT SUBTIME('2021-05-01 10:00:00', '-366 1:1:1.123456'); Resultado:
+-----------------------------------------------------+
| SUBTIME('2021-05-01 10:00:00', '-366 1:1:1.123456') |
+-----------------------------------------------------+
| 2022-05-02 11:01:01.123456 |
+-----------------------------------------------------+ Argumentos nulos
Se algum argumento for
null , o resultado é null :SELECT
SUBTIME('10:00:00', null),
SUBTIME(null, '02:30:45'),
SUBTIME(null, null); Resultado:
+---------------------------+---------------------------+---------------------+
| SUBTIME('10:00:00', null) | SUBTIME(null, '02:30:45') | SUBTIME(null, null) |
+---------------------------+---------------------------+---------------------+
| NULL | NULL | NULL |
+---------------------------+---------------------------+---------------------+ Argumento ausente
Chamando
SUBTIME() com o número errado de argumentos ou sem passar nenhum argumento resulta em um erro:SELECT SUBTIME(); Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SUBTIME'