Aqui estão algumas opções para subtrair uma ou mais horas de um valor de data e hora no MariaDB.
O SUBTIME()
Função
O
SUBTIME()
subtrai um determinado período de tempo de um valor de hora ou data e hora. Exemplo:
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 | +--------------------------------------------+
Você também pode alterar as outras unidades de tempo, como minutos, segundos, etc.
O DATE_SUB()
Função
O
DATE_SUB()
A função permite que você subtraia um certo número de unidades de data/hora de uma expressão de data ou data/hora. Portanto, podemos usar esta função para retornar o valor de data e hora, menos um certo número de horas. Exemplo:
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 | +--------------------------------------------------+
Você também pode usar unidades de data e hora compostas. Por exemplo, você pode fazer horas e minutos de uma só vez.
Exemplo:
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 | +---------------------------------------------------------------+
Passando apenas a data
Veja o que acontece se fornecermos apenas um valor de data:
SELECT DATE_SUB('2021-05-01', INTERVAL 1 HOUR);
Resultado:
+-----------------------------------------+ | DATE_SUB('2021-05-01', INTERVAL 1 HOUR) | +-----------------------------------------+ | 2021-04-30 23:00:00 | +-----------------------------------------+
Ele assume que a hora começa às 00:00:00 e, portanto, a
HOUR
valor é subtraído disso. Várias horas
Se você precisar subtrair mais de uma hora, basta usar esse número em vez de
1
. No entanto, a HOUR
palavra-chave permanece não plural, independentemente: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 | +--------------------------------------------------+
O Operador de Subtração (-
)
Outra maneira de subtrair horas de uma expressão de data e hora é usar o operador de subtração (
-
), também conhecido como operador de menos. Exemplo:
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 | +------------------------------------------+
O operador de adição (+
)
Você também pode usar o operador de adição (
+
) juntamente com um valor negativo. Exemplo:
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 | +-------------------------------------------+
Outras maneiras de subtrair horas
Aqui estão algumas outras abordagens que você pode usar para subtrair uma ou mais horas de um valor de data e hora:
- O
ADDTIME()
função (fornecer um valor negativo subtrairá esse valor do valor de data e hora). - O
SUBDATE()
função (este é um sinônimo paraDATE_SUB()
quando usado com a mesma sintaxe). - O
DATE_ADD()
função (fornecer um valor negativo subtrairá esse valor do valor de data e hora). - O
ADDDATE()
função (fornecer um valor negativo subtrairá esse valor do valor de data e hora).