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

8 formas de agregar segundos a un valor de fecha y hora en MariaDB

Si necesita agregar uno o más segundos a un valor de fecha y hora en MariaDB, aquí hay 8 opciones para considerar.

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 horas, minutos, segundos, etc.

Ejemplo:

SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 35 SECOND);

Resultado:

+-----------------------------------------------------+
| DATE_ADD('2021-05-01 10:00:00', INTERVAL 35 SECOND) |
+-----------------------------------------------------+
| 2021-05-01 10:00:35                                 |
+-----------------------------------------------------+

En este caso, agregué 35 segundos a la expresión de fecha y hora. Tenga en cuenta que el SECOND la palabra clave sigue siendo no plural independientemente de si estoy agregando un segundo o más.

Esto es lo que sucede si proporciono solo la fecha:

SELECT DATE_ADD('2021-05-01', INTERVAL 35 SECOND);

Resultado:

+--------------------------------------------+
| DATE_ADD('2021-05-01', INTERVAL 35 SECOND) |
+--------------------------------------------+
| 2021-05-01 00:00:35                        |
+--------------------------------------------+

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

Al agregar 60 segundos, podemos usar alternativamente el MINUTE palabra clave si preferimos:

SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 MINUTE);

Resultado:

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

Esta técnica obviamente funciona con 120 segundos, 180 y así sucesivamente. Simplemente use la cantidad de minutos correspondiente.

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

SELECT 
DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:30' MINUTE_SECOND);

Resultado:

+----------------------------------------------------------------+
| DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:30' MINUTE_SECOND) |
+----------------------------------------------------------------+
| 2021-05-01 10:01:30                                            |
+----------------------------------------------------------------+

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 segundos 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 segundos en bloques de 86,400, que es la cantidad de segundos en un día).
  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 35 SECOND);

Resultado:

+----------------------------------------------------+
| ADDDATE('2021-05-01 10:00:00', INTERVAL 35 SECOND) |
+----------------------------------------------------+
| 2021-05-01 10:00:35                                |
+----------------------------------------------------+

El DATE_SUB() Función

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

Ejemplo:

SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL -35 SECOND);

Resultado:

+------------------------------------------------------+
| DATE_SUB('2021-05-01 10:00:00', INTERVAL -35 SECOND) |
+------------------------------------------------------+
| 2021-05-01 10:00:35                                  |
+------------------------------------------------------+

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 -35 SECOND);

Resultado:

+-----------------------------------------------------+
| SUBDATE('2021-05-01 10:00:00', INTERVAL -35 SECOND) |
+-----------------------------------------------------+
| 2021-05-01 10:00:35                                 |
+-----------------------------------------------------+

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 segundos a nuestra expresión de fecha y hora.

Ejemplo:

SELECT '2021-05-01 10:00:00' + INTERVAL 35 SECOND;

Resultado:

+--------------------------------------------+
| '2021-05-01 10:00:00' + INTERVAL 35 SECOND |
+--------------------------------------------+
| 2021-05-01 10:00:35                        |
+--------------------------------------------+

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 expresión de fecha y hora:

SELECT '2021-05-01 10:00:00' - INTERVAL -35 SECOND;

Resultado:

+---------------------------------------------+
| '2021-05-01 10:00:00' - INTERVAL -35 SECOND |
+---------------------------------------------+
| 2021-05-01 10:00:35                         |
+---------------------------------------------+

El ADDTIME() Función

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

Ejemplo:

SELECT ADDTIME('2021-05-01 10:00:00', '00:00:30');

Resultado:

+--------------------------------------------+
| ADDTIME('2021-05-01 10:00:00', '00:00:30') |
+--------------------------------------------+
| 2021-05-01 10:00:30                        |
+--------------------------------------------+

Una ventaja de esta función es que también puede cambiar otras unidades de tiempo, como horas, minutos, 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:00:00', '-00:00:30');

Resultado:

+---------------------------------------------+
| SUBTIME('2021-05-01 10:00:00', '-00:00:30') |
+---------------------------------------------+
| 2021-05-01 10:00:30                         |
+---------------------------------------------+

Otras unidades de fecha y hora

Los ejemplos anteriores agregan una cantidad de segundos 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.