En MariaDB, SUBTIME() es una función de fecha y hora integrada que resta una cantidad de una expresión de hora o fecha y hora.
Le permite cambiar una expresión de hora o fecha y hora pasando esa expresión, así como una expresión de tiempo para restar de esa expresión. Puede pasar una cantidad negativa si necesita agregar a la expresión de tiempo.
Sintaxis
La sintaxis es así:
SUBTIME(expr1,expr2)
Donde expr1 es una expresión de hora o fecha y hora, y expr2 es una expresión de tiempo.
Ejemplo
He aquí un ejemplo:
SELECT SUBTIME('10:00:00', '02:30:45'); Resultado:
+---------------------------------+
| SUBTIME('10:00:00', '02:30:45') |
+---------------------------------+
| 07:29:15 |
+---------------------------------+ Expresiones de fecha y hora
El primer argumento también puede ser una expresión de fecha y 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 |
+--------------------------------------------+ En este caso, se restó suficiente tiempo para retroceder la fecha al día y mes anterior.
Expresiones de tiempo en un formato más flexible
MariaDB permite la asignación de horas en formatos más flexibles, como quitar ceros a la izquierda y proporcionar un valor para el día.
Por lo tanto, podemos hacer esto:
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
Proporcionar un intervalo negativo para la parte del día agrega esa cantidad a la hora/fechahora.
Ejemplo:
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
Si algún argumento es null , el resultado es 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 faltante
Llamando a SUBTIME() con el número incorrecto de argumentos, o sin pasar ningún argumento da como resultado un error:
SELECT SUBTIME(); Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SUBTIME'