sql >> Base de Datos >  >> RDS >> Mysql

Ejemplos de TIMEDIFF() – MySQL

MySQL TIMEDIFF() La función devuelve la diferencia entre dos valores de hora o fecha y hora.

La forma en que funciona es que proporciona los dos valores para comparar y TIMEDIFF() resta el segundo valor del primero y luego devuelve el resultado como un valor de tiempo.

Sintaxis

La sintaxis es así:

TIMEDIFF(expr1,expr2)

Donde expr1 y expr2 son los dos valores a comparar. El valor de retorno es expr2 restado de expr1 .

Ejemplo básico

Aquí hay un ejemplo para demostrarlo.

SELECT TIMEDIFF('11:35:25', '10:35:25');

Resultado:

+----------------------------------+
| TIMEDIFF('11:35:25', '10:35:25') |
+----------------------------------+
| 01:00:00                         |
+----------------------------------+

Tiempo transcurrido

El valor de tiempo puede representar el tiempo transcurrido, por lo que no se limita a menos de 24 horas.

SELECT TIMEDIFF('500:35:25', '10:35:25');

Resultado:

+-----------------------------------+
| TIMEDIFF('500:35:25', '10:35:25') |
+-----------------------------------+
| 490:00:00                         |
+-----------------------------------+

Diferencia horaria negativa

Si el segundo valor es mayor que el primero, obtendrá un valor negativo para la diferencia horaria. Esto es perfectamente válido.

SELECT TIMEDIFF('10:35:25', '500:35:25');

Resultado:

+-----------------------------------+
| TIMEDIFF('10:35:25', '500:35:25') |
+-----------------------------------+
| -490:00:00                        |
+-----------------------------------+

Valores de fecha y hora

Aquí hay un ejemplo que usa valores de fecha y hora como argumentos.

SELECT TIMEDIFF('2021-02-01 10:35:25', '2021-01-01 10:35:25');

Resultado:

+--------------------------------------------------------+
| TIMEDIFF('2021-02-01 10:35:25', '2021-01-01 10:35:25') |
+--------------------------------------------------------+
| 744:00:00                                              |
+--------------------------------------------------------+

Tenga en cuenta que ambos argumentos deben ser del mismo tipo. Por lo tanto, no puede tener un valor de tiempo para el primero y un valor de fecha y hora para el segundo (y viceversa).

También tenga en cuenta que el tipo de datos de tiempo solo puede estar en el rango -838:59:59 a 838:59:59 . Por lo tanto, lo siguiente no funciona:

SELECT TIMEDIFF('2000-01-01 10:35:25', '2021-01-01 10:35:25');

Resultado:

+--------------------------------------------------------+
| TIMEDIFF('2000-01-01 10:35:25', '2021-01-01 10:35:25') |
+--------------------------------------------------------+
| -838:59:59                                             |
+--------------------------------------------------------+
1 row in set, 1 warning (0.00 sec)

En este caso, obtenemos un resultado incorrecto y una advertencia.