sql >> Base de Datos >  >> RDS >> MariaDB

8 formas de agregar una hora a una fecha y hora en MariaDB

Hay muchas formas de realizar aritmética de fechas en MariaDB. Esto incluye sumar o restar un cierto número de una parte de fecha determinada de un valor de fecha o de fecha y hora.

En este artículo, presento 8 formas de agregar una hora a un valor de fecha y hora en MariaDB.

El DATE_ADD() Función

El DATE_ADD() La función le permite agregar una cantidad a una expresión de fecha o fecha y hora. Esto incluye agregar partes de tiempo, como la hora.

Ejemplo:

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                              |
+--------------------------------------------------+

En este caso, agregué una hora a la expresión de fecha y hora.

Esto es lo que sucede si proporciono solo la fecha:

SELECT DATE_ADD('2021-05-01', INTERVAL 1 HOUR);

Resultado:

+-----------------------------------------+
| DATE_ADD('2021-05-01', INTERVAL 1 HOUR) |
+-----------------------------------------+
| 2021-05-01 01:00:00                     |
+-----------------------------------------+

La parte de la hora se agrega al resultado y se supone que la hora inicial fue 00:00:00 .

Si necesita agregar más de una hora, simplemente use ese número en lugar de 1 . Tenga en cuenta que la HOUR la palabra clave permanece sin plural independientemente de:

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                              |
+--------------------------------------------------+

También es posible usar otra unidad de fecha/hora con el número apropiado de esa unidad. Por lo tanto, podría especificar una cierta cantidad de minutos, como 60 o 120.

Ejemplo:

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                                 |
+-----------------------------------------------------+

También puede usar una unidad de fecha/hora compuesta para agregar varias unidades. Por ejemplo, si quisiera agregar 1 hora y 30 minutos, podría hacer esto:

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 fecha y hora de MariaDB para obtener una lista completa de unidades de fecha/hora.

El ADDDATE() Función

Otra forma de agregar una hora a una expresión de fecha y hora es usar ADDDATE() función. Esta función tiene dos sintaxis:

  1. Una sintaxis le permite agregar una cantidad de días a una fecha, que no es lo que estamos haciendo aquí (a menos que planeemos agregar 24 horas).
  2. La otra sintaxis es la misma que con DATE_ADD() función de arriba. Al usar esta sintaxis, ADDDATE() es un sinónimo de DATE_ADD() .

Ejemplo:

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                             |
+-------------------------------------------------+

El DATE_SUB() Función

El DATE_SUB() función le permite restar una cantidad a una fecha. Sin embargo, si proporciona un valor negativo para restar, entonces termina siendo sumado a la fecha.

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 11:00:00                               |
+---------------------------------------------------+

El SUBDATE() Función

El SUBDATE() función es un sinónimo de DATE_SUB() cuando se usa la siguiente sintaxis.

Ejemplo:

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                              |
+--------------------------------------------------+

El + Operador

Otra opción es usar el + operador.

El + El operador se usa para realizar sumas, y podemos usarlo en fechas, junto con la unidad de fecha/hora aplicable para agregar una cierta cantidad de horas a nuestra fecha.

Ejemplo:

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                     |
+-----------------------------------------+

El - Operador

El - El operador se puede utilizar para restar una cantidad de una fecha. Pero si se usa para restar un número negativo, entonces el resultado es una cantidad positiva que se agrega a la fecha:

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                      |
+------------------------------------------+

El ADDTIME() Función

Puedes usar el ADDTIME() función para agregar un número de horas a una expresión de fecha y hora.

Ejemplo:

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                      |
+------------------------------------------+

Una ventaja de esta función es que también puede cambiar otras unidades de tiempo, como minutos, segundos, etc.

El SUBTIME() Función

Alternativamente, puede cambiarlo y usar SUBTIME() con un valor negativo si así lo desea:

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                       |
+-------------------------------------------+

Otras unidades de fecha y hora

Los ejemplos anteriores agregan una cantidad de horas al valor de fecha y hora, pero podemos usar las mismas técnicas para agregar cualquier unidad de fecha/hora. Consulte Unidades de fecha y hora de MariaDB para obtener una lista completa de las unidades de fecha/hora que se pueden usar con las funciones y los operadores anteriores.