MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

8 maneiras de adicionar uma hora a um Datetime no MariaDB


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:
  1. 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).
  2. A outra sintaxe é a mesma do DATE_ADD() função acima. Ao usar esta sintaxe, ADDDATE() é um sinônimo para DATE_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.