O MariaDB fornece muitas maneiras de realizar aritmética de data. Isso inclui adicionar ou subtrair um determinado número de uma determinada parte de data de um valor de data ou data e hora.
Neste artigo, apresento 8 maneiras de adicionar um ou mais minutos a um valor de data e hora no MariaDB.
O DATE_ADD()
Função
O
DATE_ADD()
A função permite adicionar um valor a uma expressão de data ou data e hora. Isso inclui adicionar partes de tempo, como minutos. Exemplo:
SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 35 MINUTE);
Resultado:
+-----------------------------------------------------+ | DATE_ADD('2021-05-01 10:00:00', INTERVAL 35 MINUTE) | +-----------------------------------------------------+ | 2021-05-01 10:35:00 | +-----------------------------------------------------+
Nesse caso, adicionei 35 minutos à expressão datetime. Observe que o
MINUTE
palavra-chave permanece não plural, independentemente de eu estar adicionando um minuto ou mais. Veja o que acontece se eu fornecer apenas a data:
SELECT DATE_ADD('2021-05-01', INTERVAL 35 MINUTE);
Resultado:
+--------------------------------------------+ | DATE_ADD('2021-05-01', INTERVAL 35 MINUTE) | +--------------------------------------------+ | 2021-05-01 00:35:00 | +--------------------------------------------+
A parte do tempo é anexada ao resultado e supõe-se que a hora inicial foi
00:00:00
. Ao adicionar 60 minutos, podemos usar a
HOUR
palavra-chave se preferirmos:SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 HOUR);
Resultado:
+--------------------------------------------------+ | DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 HOUR) | +--------------------------------------------------+ | 2021-05-01 11:00:00 | +--------------------------------------------------+
Obviamente, esta técnica funciona com 120 minutos, 180 e assim por diante. Basta usar o número de horas aplicável.
Você também pode usar uma unidade de data/hora composta para adicionar várias unidades. Por exemplo, se você quiser adicionar 1 hora e 30 minutos, você pode fazer isso:
SELECT
DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:30' HOUR_MINUTE);
Resultado:
+--------------------------------------------------------------+ | DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:30' HOUR_MINUTE) | +--------------------------------------------------------------+ | 2021-05-01 11:30:00 | +--------------------------------------------------------------+
Consulte Unidades de data e hora do MariaDB para obter uma lista completa de unidades de data/hora.
O ADDDATE()
Função
Outra maneira de adicionar minutos a uma expressão de data e hora é usar o comando
ADDDATE()
função. Esta função tem duas sintaxes:- Uma sintaxe permite adicionar um número de dias a uma data, o que não é o que estamos fazendo aqui (a menos que planejemos adicionar minutos em blocos de 1.440, que é quantos minutos há em um dia).
- A outra sintaxe é a mesma do
DATE_ADD()
função acima. Ao usar esta sintaxe,ADDDATE()
é um sinônimo paraDATE_ADD()
.
Exemplo:
SELECT ADDDATE('2021-05-01 10:00:00', INTERVAL 35 MINUTE);
Resultado:
+----------------------------------------------------+ | ADDDATE('2021-05-01 10:00:00', INTERVAL 35 MINUTE) | +----------------------------------------------------+ | 2021-05-01 10:35:00 | +----------------------------------------------------+
O DATE_SUB()
Função
O
DATE_SUB()
função permite subtrair um valor para uma expressão de data/data e hora. No entanto, se você fornecer um valor negativo para subtrair, ele acaba sendo adicionado para a data/hora. Exemplo:
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL -35 MINUTE);
Resultado:
+------------------------------------------------------+ | DATE_SUB('2021-05-01 10:00:00', INTERVAL -35 MINUTE) | +------------------------------------------------------+ | 2021-05-01 10:35:00 | +------------------------------------------------------+
O SUBDATE()
Função
O
SUBDATE()
função é sinônimo de DATE_SUB()
ao usar a sintaxe a seguir. Exemplo:
SELECT SUBDATE('2021-05-01 10:00:00', INTERVAL -35 MINUTE);
Resultado:
+-----------------------------------------------------+ | SUBDATE('2021-05-01 10:00:00', INTERVAL -35 MINUTE) | +-----------------------------------------------------+ | 2021-05-01 10:35:00 | +-----------------------------------------------------+
O +
Operador
Outra opção é usar o
+
operador. O
+
operador é usado para realizar a adição, e podemos usá-lo em datas, juntamente com a unidade de data/hora aplicável para adicionar um certo número de minutos à nossa data. Exemplo:
SELECT '2021-05-01 10:00:00' + INTERVAL 35 MINUTE;
Resultado:
+--------------------------------------------+ | '2021-05-01 10:00:00' + INTERVAL 35 MINUTE | +--------------------------------------------+ | 2021-05-01 10:35:00 | +--------------------------------------------+
O -
Operador
O
-
pode ser usado para subtrair um valor de uma data. Mas se for usado para subtrair um número negativo, o resultado será um valor positivo sendo adicionado à data:SELECT '2021-05-01 10:00:00' - INTERVAL -35 MINUTE;
Resultado:
+---------------------------------------------+ | '2021-05-01 10:00:00' - INTERVAL -35 MINUTE | +---------------------------------------------+ | 2021-05-01 10:35:00 | +---------------------------------------------+
O ADDTIME()
Função
Você pode usar o
ADDTIME()
função para adicionar um número de minutos a uma expressão de data e hora. Exemplo:
SELECT ADDTIME('2021-05-01 10:00:00', '00:30:00');
Resultado:
+--------------------------------------------+ | ADDTIME('2021-05-01 10:00:00', '00:30:00') | +--------------------------------------------+ | 2021-05-01 10:30:00 | +--------------------------------------------+
Um benefício desta função é que você também pode alterar as outras unidades de tempo, como horas, segundos, etc.
O SUBTIME()
Função
Você pode alternar e usar
SUBTIME()
com um valor negativo se assim o desejar:SELECT SUBTIME('2021-05-01 10:00:00', '-00:30:00');
Resultado:
+---------------------------------------------+ | SUBTIME('2021-05-01 10:00:00', '-00:30:00') | +---------------------------------------------+ | 2021-05-01 10:30:00 | +---------------------------------------------+
Outras unidades de data e hora
Os exemplos acima adicionam alguns minutos ao valor datetime, mas podemos usar as mesmas técnicas para adicionar qualquer unidade de data/hora. Consulte Unidades de data e hora do MariaDB para obter uma lista completa de unidades de data/hora que podem ser usadas com as funções e operadores acima.