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

Ejemplos de TIMESTAMPDIFF() – MySQL

MySQL TIMESTAMPDIFF() La función se utiliza para encontrar la diferencia entre dos expresiones de fecha o fecha y hora. Debe pasar los dos valores de fecha/fechahora, así como la unidad que se usará para determinar la diferencia (por ejemplo, día , mes , etc). El TIMESTAMPDIFF() la función devolverá la diferencia en la unidad especificada.

Sintaxis

Primero, así es como funciona la sintaxis:

TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)

Aquí, unit es la unidad a utilizar para expresar la diferencia (por ejemplo, día, mes, año, etc.). datetime_expr1 es el primer valor de fecha/fechahora y datetime_expr2 es el segundo.

Esta función resta datetime_expr1 de datetime_expr2 y devuelve el resultado en unit s. El resultado se devuelve como un número entero.

Unidades válidas

La unit argumento puede ser cualquiera de los siguientes:

  • MICROSECOND
  •  SECOND
  • MINUTE
  • HOUR
  • DAY
  • WEEK
  • MONTH
  • QUARTER
  • YEAR

Ejemplo 1:diferencia en días

Aquí hay un ejemplo para demostrar el uso básico de esta función. Aquí comparamos dos expresiones de fecha y devolvemos la diferencia entre ellas en días.

SELECT 
  TIMESTAMPDIFF(DAY,'2022-02-01','2022-02-21')
  AS 'Difference in Days';

Resultado:

+--------------------+
| Difference in Days |
+--------------------+
|                 20 |
+--------------------+

Ejemplo 2:diferencia en horas

En este ejemplo comparamos los mismos valores que en el ejemplo anterior, excepto que aquí devolvemos la diferencia en horas .

SELECT 
  TIMESTAMPDIFF(HOUR,'2022-02-01','2022-02-21')
  AS 'Difference in Hours';

Resultado:

+---------------------+
| Difference in Hours |
+---------------------+
|                 480 |
+---------------------+

Ejemplo 3:un ejemplo de 'fecha y hora'

Aquí hay un ejemplo que devuelve la diferencia en minutos. En este caso, comparamos dos valores de fecha y hora (a diferencia de solo los valores de fecha como en los ejemplos anteriores).

SELECT 
  TIMESTAMPDIFF(MINUTE,'2022-02-01 10:30:27','2022-02-01 10:45:27')
  AS 'Difference in Minutes';

Resultado:

+-----------------------+
| Difference in Minutes |
+-----------------------+
|                    15 |
+-----------------------+

Ejemplo 4:fracciones de segundo

Puede ir directamente al microsegundo (6 dígitos) si lo necesita.

SELECT 
  TIMESTAMPDIFF(MICROSECOND,'2022-02-01 10:30:27.000000','2022-02-01 10:30:27.123456') 
  AS 'Difference in Microseconds';

Resultado:

+----------------------------+
| Difference in Microseconds |
+----------------------------+
|                     123456 |
+----------------------------+

Ejemplo 5:resultados negativos

Como era de esperar, si el primer argumento de fecha/hora es mayor que el segundo, el resultado será un número entero negativo.

SELECT 
  TIMESTAMPDIFF(DAY,'2022-02-21','2022-02-01')
  AS 'Difference in Days';

Resultado:

+--------------------+
| Difference in Days |
+--------------------+
|                -20 |
+--------------------+