Função MySQL TIMEDIFF()

Resumo : neste tutorial você aprenderá como usar a TIMEDIFF()função MySQL para calcular a diferença entre dois TIMEvalores.

Introdução à função MySQL TIMEDIFF()

A TIMEDIFF()função calcula a diferença entre dois valores TIMEou DATETIME.

Aqui está a sintaxe da TIMEDIFF()função:

TIMEDIFF(time1, time2);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta sintaxe:

  • time1: O primeiro TIMEou DATETIMEvalor.
  • time2: O segundo TIMEou DATETIMEvalor.

A TIMEDIFF()função retorna a diferença entre dois TIMEvalores ( time1 - time2) no formato 'HH:MM:SS'.

Como a TIMEDIFF()função retorna um TIMEvalor, seu resultado é limitado ao intervalo permitido para TIMEvalores que vão de -838:59:59até 838:59:59.

Se time1ou time2for NULL, a TIMEDIFF()função retornará NULL.

É importante observar que a TIMEDIFF()função aceita valores com tipos TIMEou DATETIME. Para calcular a diferença entre dois valores DATEou DATETIME, você usa a DATEDIFF()função.

Exemplos de funções MySQL TIMEDIFF

Vejamos um exemplo que calcula a diferença entre dois valores de TIME.

1) Exemplo simples de função TIMEDIFF

O exemplo a seguir usa a TIMEDIFF()função para calcular a diferença entre dois valores de tempo literais:

SELECT TIMEDIFF('12:00:00','10:00:00') diff;Linguagem de código:  JavaScript  ( javascript )

Saída:

+----------+
| diff     |
+----------+
| 02:00:00 |
+----------+
1 row in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A consulta retorna a diferença de horário entre '12:00:00'e '10:00:00', que é '02:00:00'.

2) Usando a função TIMEDIFF() com dados da tabela

Usaremos a orderstabela do banco de dados de exemplo :

A consulta a seguir usa a TIMEDIFF()função para descobrir o tempo necessário para enviar cada pedido:

SELECT 
  orderNumber, 
  TIMEDIFF(shippedDate, orderDate) shipTime 
FROM 
  orders;

Saída:

+-------------+-----------+
| orderNumber | shipTime  |
+-------------+-----------+
|       10100 | 96:00:00  |
|       10101 | 48:00:00  |
|       10102 | 96:00:00  |
|       10103 | 96:00:00  |
...

A consulta calcula a diferença de tempo entre shippedDatee orderDatepara cada pedido e exibe o resultado na shipTimecoluna.

Por padrão, a TIMEDIFF()função retorna a diferença horária no formato "HH:MM:SS".

Se quiser formatar o resultado, você pode usar a TIME_FORMAT()função. Por exemplo, o seguinte exibe a diferença horária em horas e minutos:

SELECT 
  orderNumber, 
  TIME_FORMAT(
    TIMEDIFF(shippedDate, orderDate), 
    '%H hours %i minutes'
  ) shipTime 
FROM 
  orders;Linguagem de código:  JavaScript  ( javascript )

Saída:

+-------------+----------------------+
| orderNumber | shipTime             |
+-------------+----------------------+
|       10100 | 96 hours 00 minutes  |
|       10101 | 48 hours 00 minutes  |
|       10102 | 96 hours 00 minutes  |
|       10103 | 96 hours 00 minutes  |
|       10104 | 24 hours 00 minutes  |
...

3) Usando a função TIMEDIFF() com NULL

A TIMEDIFF()função retorna NULLse um dos argumentos for NULL. Por exemplo:

SELECT TIMEDIFF('2010-01-01',NULL) diff;Linguagem de código:  PHP  ( php )

Saída:

+------+
| diff |
+------+
| NULL |
+------+
1 row in set, 1 warning (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Resumo

  • Use a TIMEDIFF()função para calcular a diferença entre dois TIMEvalores.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *