我正在使用mysql和Java。当我在mysql中使用TIMEDIFF
执行查询以获得两次差异时,它会将结果显示为'40:23:12'
。但是当我在java中使用该查询时,异常错误如下:
非法小时值' 40'
SELECT TIMEDIFF(NOW(),last_act_time) FROM user_activity_log WHERE id=1;
有没有解决方案?
答案 0 :(得分:0)
根据我的理解,这是MySql版本5.1.6中的错误。
参考:https://bugs.mysql.com/bug.php?id=36051
要解决此问题,应在执行查询期间将结果转换为字符串。这可以通过以下方式实现。
SELECT concat('',TIMEDIFF(NOW(),last_act_time)) FROM user_activity_log WHERE id=1;
concat将使其成为字符串,以便您可以将其作为字符串处理。
SELECT CAST(TIMEDIFF(NOW(),last_act_time) AS CHAR) FROM user_activity_log WHERE id=1;
根据@eggyal
的建议