MySQL TIMEDIFF function runs well in MySQL but with JDBC it generate SQL Exception.
The problem is that the TIMEDIFF(expr1,expr2) function returns expr1 – expr2 expressed as a time value.
This value is handled by java.sql.Time. But TIMEDIFF( , ) may return (for example) 12:45:00 or 40:30:01 as the case may be. For first value it works but for the second value it is not a proper time value according to java.sql.Time, hence the exception.
To get rid of this problem is to use concat as follows
CONCAT('',TIMEDIFF(expr1,expr2))
Now the returned value will be a String instead of a Time and which prevents JDBC from parsing it.