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:
- 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).
- La otra sintaxis es la misma que con
DATE_ADD()
función de arriba. Al usar esta sintaxis,ADDDATE()
es un sinónimo deDATE_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.