CAST(SEC_TO_TIME无效

时间:2017-09-25 08:39:38

标签: mysql sql

我有一个sql(MySQL)语句,它输出每个记录中2个日期时间之间的差异(前一个select语句的输出),这是正常的 -

select UNIX_TIMESTAMP('<c:out value="${row.acktime}" />')
- UNIX_TIMESTAMP('<c:out value="${row.ts}" />') as tdiff

输出通常是几千秒(5523,1892等),我想把它显示为hh:mm:ss所以我 -

select CAST(SEC_TO_TIME(UNIX_TIMESTAMP('<c:out value="${row.acktime}" />')
- UNIX_TIMESTAMP('<c:out value="${row.ts}" />') AS CHAR) as tdiff

但这不会产生任何输出(并且不会引发错误)。我做错了什么?

此致 活性

2 个答案:

答案 0 :(得分:0)

您需要使用TIME_FORMAT函数,(这里是documentation)。您的查询将如下所示:

SELECT TIME_FORMAT(SEC_TO_TIME(<some value>),'%Hh %im');

这是 SQL Fiddle

答案 1 :(得分:0)

奇怪的是CAST导致了这个问题,删除它会导致显示正确。