Você pode usar o
TIMEDIFF()
e o TIME_TO_SEC()
funções da seguinte forma:SELECT TIME_TO_SEC(TIMEDIFF('2010-08-20 12:01:00', '2010-08-20 12:00:00')) diff;
+------+
| diff |
+------+
| 60 |
+------+
1 row in set (0.00 sec)
Você também pode usar o
UNIX_TIMESTAMP()
funcionar como @Amber sugerido
em outra resposta:SELECT UNIX_TIMESTAMP('2010-08-20 12:01:00') -
UNIX_TIMESTAMP('2010-08-20 12:00:00') diff;
+------+
| diff |
+------+
| 60 |
+------+
1 row in set (0.00 sec)
Se você estiver usando o
TIMESTAMP
tipo de dados, acho que o UNIX_TIMESTAMP()
solução seria um pouco mais rápida, pois TIMESTAMP
os valores já são armazenados como um inteiro representando o número de segundos desde a época (Fonte
). Citando os documentos :
QuandoUNIX_TIMESTAMP()
é usado em umTIMESTAMP
coluna, a função retorna o valor de timestamp interno diretamente, sem conversão implícita “string-to-Unix-timestamp”.
Tenha em mente queTIMEDIFF()
tipo de dados de retorno deTIME
.TIME
os valores podem variar de '-838:59:59' a '838:59:59' (aproximadamente 34,96 dias)