我有一个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
但这不会产生任何输出(并且不会引发错误)。我做错了什么?
此致 活性
答案 0 :(得分:0)
您需要使用TIME_FORMAT
函数,(这里是documentation)。您的查询将如下所示:
SELECT TIME_FORMAT(SEC_TO_TIME(<some value>),'%Hh %im');
这是 SQL Fiddle 。
答案 1 :(得分:0)
奇怪的是CAST导致了这个问题,删除它会导致显示正确。