Resumo : neste tutorial você aprenderá como usar a TIMEDIFF()
função MySQL para calcular a diferença entre dois TIME
valores.
Introdução à função MySQL TIMEDIFF()
A TIMEDIFF()
função calcula a diferença entre dois valores TIME
ou 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 primeiroTIME
ouDATETIME
valor.time2
: O segundoTIME
ouDATETIME
valor.
A TIMEDIFF()
função retorna a diferença entre dois TIME
valores ( time1 - time2
) no formato 'HH:MM:SS'
.
Como a TIMEDIFF()
função retorna um TIME
valor, seu resultado é limitado ao intervalo permitido para TIME
valores que vão de -838:59:59
até 838:59:59
.
Se time1
ou time2
for NULL, a TIMEDIFF()
função retornará NULL.
É importante observar que a TIMEDIFF()
função aceita valores com tipos TIME
ou DATETIME
. Para calcular a diferença entre dois valores DATE
ou 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 orders
tabela 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 shippedDate
e orderDate
para cada pedido e exibe o resultado na shipTime
coluna.
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 NULL
se 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 doisTIME
valores.