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