Há muitas maneiras de realizar aritmética de datas no MariaDB. 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 uma hora 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 a hora. Exemplo:
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 |
+--------------------------------------------------+ Nesse caso, adicionei uma hora à expressão datetime.
Veja o que acontece se eu fornecer apenas a data:
SELECT DATE_ADD('2021-05-01', INTERVAL 1 HOUR); Resultado:
+-----------------------------------------+
| DATE_ADD('2021-05-01', INTERVAL 1 HOUR) |
+-----------------------------------------+
| 2021-05-01 01:00:00 |
+-----------------------------------------+ A parte do tempo é anexada ao resultado e supõe-se que a hora inicial foi
00:00:00 . Se você precisar adicionar mais de uma hora, basta usar esse número em vez de
1 . Observe que a HOUR palavra-chave permanece não plural, independentemente:SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 2 HOUR); Resultado:
+--------------------------------------------------+
| DATE_ADD('2021-05-01 10:00:00', INTERVAL 2 HOUR) |
+--------------------------------------------------+
| 2021-05-01 12:00:00 |
+--------------------------------------------------+ Também é possível usar outra unidade de data/hora com o número apropriado dessa unidade. Portanto, você pode especificar um certo número de minutos, como 60 ou 120.
Exemplo:
SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 60 MINUTE); Resultado:
+-----------------------------------------------------+
| DATE_ADD('2021-05-01 10:00:00', INTERVAL 60 MINUTE) |
+-----------------------------------------------------+
| 2021-05-01 11:00:00 |
+-----------------------------------------------------+ 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 uma hora a uma expressão de data e hora é usar o
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 24 horas).
- 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 1 HOUR); Resultado:
+-------------------------------------------------+
| ADDDATE('2021-05-01 10:00:00', INTERVAL 1 HOUR) |
+-------------------------------------------------+
| 2021-05-01 11:00:00 |
+-------------------------------------------------+ O DATE_SUB() Função
O
DATE_SUB() função permite subtrair uma quantia para uma data. No entanto, se você fornecer um valor negativo para subtrair, ele acaba sendo adicionado à data. 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 11:00: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 -1 HOUR); Resultado:
+--------------------------------------------------+
| SUBDATE('2021-05-01 10:00:00', INTERVAL -1 HOUR) |
+--------------------------------------------------+
| 2021-05-01 11:00: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 horas à nossa data. Exemplo:
SELECT '2021-05-01 10:00:00' + INTERVAL 1 HOUR; Resultado:
+-----------------------------------------+ | '2021-05-01 10:00:00' + INTERVAL 1 HOUR | +-----------------------------------------+ | 2021-05-01 11:00: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 -1 HOUR; Resultado:
+------------------------------------------+ | '2021-05-01 10:00:00' - INTERVAL -1 HOUR | +------------------------------------------+ | 2021-05-01 11:00:00 | +------------------------------------------+
O ADDTIME() Função
Você pode usar o
ADDTIME() função para adicionar um número de horas a uma expressão de data e hora. Exemplo:
SELECT ADDTIME('2021-05-01 10:30:45', '01:0:0'); Resultado:
+------------------------------------------+
| ADDTIME('2021-05-01 10:30:45', '01:0:0') |
+------------------------------------------+
| 2021-05-01 11:30:45 |
+------------------------------------------+ Um benefício desta função é que você também pode alterar as outras unidades de tempo, como minutos, 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:30:45', '-01:0:0'); Resultado:
+-------------------------------------------+
| SUBTIME('2021-05-01 10:30:45', '-01:0:0') |
+-------------------------------------------+
| 2021-05-01 11:30:45 |
+-------------------------------------------+ Outras unidades de data e hora
Os exemplos acima adicionam um número de horas 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.