Aquí hay algunas opciones para restar una o más horas de un valor de fecha y hora en MariaDB.
El SUBTIME()
Función
El SUBTIME()
resta una cantidad determinada de tiempo de un valor de hora o fechahora.
Ejemplo:
SELECT SUBTIME('2021-05-01 10:00:00', '01:00:00');
Resultado:
+--------------------------------------------+ | SUBTIME('2021-05-01 10:00:00', '01:00:00') | +--------------------------------------------+ | 2021-05-01 09:00:00 | +--------------------------------------------+
También puede cambiar las otras unidades de tiempo, como minutos, segundos, etc.
El DATE_SUB()
Función
El DATE_SUB()
La función le permite restar un cierto número de unidades de fecha/hora de una expresión de fecha o fecha y hora. Por lo tanto, podemos usar esta función para devolver el valor de fecha y hora, menos un cierto número de horas.
Ejemplo:
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL 1 HOUR);
Resultado:
+--------------------------------------------------+ | DATE_SUB('2021-05-01 10:00:00', INTERVAL 1 HOUR) | +--------------------------------------------------+ | 2021-05-01 09:00:00 | +--------------------------------------------------+
También puede utilizar unidades de fecha y hora compuestas. Por ejemplo, podría hacer horas y minutos de una sola vez.
Ejemplo:
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL '15:30' HOUR_MINUTE);
Resultado:
+---------------------------------------------------------------+ | DATE_SUB('2021-05-01 10:00:00', INTERVAL '15:30' HOUR_MINUTE) | +---------------------------------------------------------------+ | 2021-04-30 18:30:00 | +---------------------------------------------------------------+
Pasar solo la fecha
Esto es lo que sucede si proporcionamos solo un valor de fecha:
SELECT DATE_SUB('2021-05-01', INTERVAL 1 HOUR);
Resultado:
+-----------------------------------------+ | DATE_SUB('2021-05-01', INTERVAL 1 HOUR) | +-----------------------------------------+ | 2021-04-30 23:00:00 | +-----------------------------------------+
Asume que el tiempo comienza a las 00:00:00, por lo que HOUR
la cantidad se resta de eso.
Múltiples Horas
Si necesita restar más de una hora, simplemente use ese número en lugar de 1
. Sin embargo, la HOUR
la palabra clave permanece sin plural independientemente de:
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL 2 HOUR);
Resultado:
+--------------------------------------------------+ | DATE_SUB('2021-05-01 10:00:00', INTERVAL 2 HOUR) | +--------------------------------------------------+ | 2021-05-01 08:00:00 | +--------------------------------------------------+
El operador de resta (-
)
Otra forma de restar horas de una expresión de fecha y hora es usar el operador de resta (-
), también conocido como el operador menos.
Ejemplo:
SELECT '2021-05-01 10:00:00' - INTERVAL 48 HOUR;
Resultado:
+------------------------------------------+ | '2021-05-01 10:00:00' - INTERVAL 48 HOUR | +------------------------------------------+ | 2021-04-29 10:00:00 | +------------------------------------------+
El Operador de Suma (+
)
Alternativamente, puede usar el operador de suma (+
) junto con una cantidad negativa.
Ejemplo:
SELECT '2021-05-01 10:00:00' + INTERVAL -48 HOUR;
Resultado:
+-------------------------------------------+ | '2021-05-01 10:00:00' + INTERVAL -48 HOUR | +-------------------------------------------+ | 2021-04-29 10:00:00 | +-------------------------------------------+
Otras formas de restar horas
Aquí hay algunos otros enfoques que podría usar para restar una o más horas de un valor de fecha y hora:
- El
ADDTIME()
(proporcionar una cantidad negativa restará esa cantidad del valor de fecha y hora). - El
SUBDATE()
función (este es un sinónimo deDATE_SUB()
cuando se usa con la misma sintaxis). - El
DATE_ADD()
(proporcionar una cantidad negativa restará esa cantidad del valor de fecha y hora). - El
ADDDATE()
(proporcionar una cantidad negativa restará esa cantidad del valor de fecha y hora).