2016-08-08 2 views
0

Я использую mysql и Java. когда iam выполняет запрос, чтобы получить разницу между двумя значениями, используя TIMEDIFF в mysql, что дает результат как '40:23:12'. Но когда я использую этот запрос в Java, ошибка исключения приходит как:незаконная ошибка значения часа при получении разницы между двумя временами с использованием TIMEDIFF в mysql

незаконной час значение «40»

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

Есть ли решение для этого?

+0

Что значение 'last_act_time'? – Bobby

+0

, если 'last_act_time' содержит значение времени (' HH: mm: ss'), тогда вы должны использовать 'TIMEDIFF (CURTIME(), last_act_time)' Я думаю, – 1000111

+0

Значение last_act_time равно '2016-08-06 17:26: 10 ' – Ponnarasu

ответ

0

Как я понимаю, это ошибка в версии MySql 5.1.6.

Ref: https://bugs.mysql.com/bug.php?id=36051

Чтобы решить эту проблему, то результат должен быть преобразован в строку во время выполнения запроса. Это может быть достигнуто следующими способами.

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

Конкат сделает его строковым, чтобы вы могли обработать его как строку.

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

как предложено @eggyal

Смежные вопросы