Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Exemplos de TIMESTAMPDIFF() – MySQL


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