O
TIMESTAMPDIFF()
do MySQL A função é usada para encontrar a diferença entre duas expressões de data ou data e hora. Você precisa passar os dois valores de data/data e hora, bem como a unidade a ser usada para determinar a diferença (por exemplo, dia , mês , etc). O TIMESTAMPDIFF()
A função retornará a diferença na unidade especificada. Sintaxe
Primeiro, veja como a sintaxe funciona:
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
Aqui,
unit
é a unidade a ser usada para expressar a diferença (por exemplo, dia, mês, ano, etc.). datetime_expr1
é o primeiro valor de data/data e hora e datetime_expr2
é o segundo. Esta função subtrai
datetime_expr1
de datetime_expr2
e retorna o resultado em unit
s. O resultado é retornado como um inteiro. Unidades válidas
A
unit
argumento pode ser qualquer um dos seguintes:MICROSECOND
-
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
Exemplo 1 – Diferença em dias
Aqui está um exemplo para demonstrar o uso básico desta função. Aqui comparamos duas expressões de data e retornamos a diferença entre elas em dias.
SELECT TIMESTAMPDIFF(DAY,'2022-02-01','2022-02-21') AS 'Difference in Days';
Resultado:
+--------------------+ | Difference in Days | +--------------------+ | 20 | +--------------------+
Exemplo 2 – Diferença de horas
Neste exemplo, comparamos os mesmos valores do exemplo anterior, exceto que aqui, retornamos a diferença em horas .
SELECT TIMESTAMPDIFF(HOUR,'2022-02-01','2022-02-21') AS 'Difference in Hours';
Resultado:
+---------------------+ | Difference in Hours | +---------------------+ | 480 | +---------------------+
Exemplo 3 – Um exemplo de 'datetime'
Aqui está um exemplo que retorna a diferença em minutos. Nesse caso, comparamos dois valores de data e hora (em oposição a apenas os valores de data, como nos exemplos 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 | +-----------------------+
Exemplo 4 – Segundos fracionários
Você pode ir até o microssegundo (6 dígitos) se precisar.
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 | +----------------------------+
Exemplo 5 - Resultados negativos
Como seria de esperar, se o primeiro argumento de data/hora for maior que o segundo, o resultado será um número inteiro negativo.
SELECT TIMESTAMPDIFF(DAY,'2022-02-21','2022-02-01') AS 'Difference in Days';
Resultado:
+--------------------+ | Difference in Days | +--------------------+ | -20 | +--------------------+