在mysql中使用TIMEDIFF获取两次之间的差值时出现非法小时值错误



我使用的是mysql和Java。当iam在mysql中使用TIMEDIFF执行查询以获取两次之间的差异时,它给出的结果为'40:23:12'。但当我在java中使用该查询时,异常错误如下:

非法小时值"40">

SELECT TIMEDIFF(NOW(),last_act_time) FROM user_activity_log WHERE id=1;

有什么解决办法吗?

据我所知,这是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 所建议

相关内容