Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SEC_TO_TIME()转换为java.sql.TIME错误_Java_Mysql - Fatal编程技术网

SEC_TO_TIME()转换为java.sql.TIME错误

SEC_TO_TIME()转换为java.sql.TIME错误,java,mysql,Java,Mysql,我有一个聚合列显示微秒,一个报告(带有jasper)必须显示该指示器的HH:mm:ss 我所做的是使用SEC_TO_TIME(sum(col)/1000),但是当映射到java.sql.TIME时,当结果中的hour值超过24时,我不工作(例如:36:33:33) 然后我想另一种方法,不使用秒到秒的时间,只是将微秒映射为大十进制, 但是不知道我应该使用什么java类来格式化date作为hh:mm:ss的默认格式被限制为24…?java.sql.Time的构造函数需要以毫秒为单位的时间。那么,为什

我有一个聚合列显示微秒,一个报告(带有jasper)必须显示该指示器的HH:mm:ss

我所做的是使用SEC_TO_TIME(sum(col)/1000),但是当映射到java.sql.TIME时,当结果中的hour值超过24时,我不工作(例如:36:33:33)

然后我想另一种方法,不使用秒到秒的时间,只是将微秒映射为大十进制,
但是不知道我应该使用什么java类来格式化date作为hh:mm:ss的默认格式被限制为24…?

java.sql.Time的构造函数需要以毫秒为单位的时间。那么,为什么你不能把微秒的结果乘以1000,得到毫秒,然后把它传递进去呢?一旦有了java日期,就可以使用DateFormat对其进行格式化。

java.sql.Time的构造函数需要以毫秒为单位的时间。那么,为什么你不能把微秒的结果乘以1000,得到毫秒,然后把它传递进去呢?一旦有了java日期,就可以使用DateFormat对其进行格式化。

java.sql.Time
表示一个时间点。您试图表示一个持续时间,而不是一个时间点。因此,试图将其“转换”为
java.sql.Time
在概念上是错误的,因此您看到错误也就不足为奇了

SEC\u TO\u TIME
您需要的所有格式都可以,对吗?因此,只需选择该表达式并从
ResultSet
中将其作为
字符串
检索即可


或者,如果您想用Java而不是SQL表示和格式化持续时间,请使用。

Java.SQL.time
表示时间点。您试图表示一个持续时间,而不是一个时间点。因此,试图将其“转换”为
java.sql.Time
在概念上是错误的,因此您看到错误也就不足为奇了

SEC\u TO\u TIME
您需要的所有格式都可以,对吗?因此,只需选择该表达式并从
ResultSet
中将其作为
字符串
检索即可

或者,如果您想用Java而不是SQL表示和格式化持续时间,请使用。

尝试以下方法:

CONCAT('',TIMEDIFF(exp2,NOW()))
试试这个:

CONCAT('',TIMEDIFF(exp2,NOW()))

嗨,保罗,我只想要总时间,因为时间不能显示HH:mm:ss(比如25:30:30)。我知道的是通过某种表达式转换(例如:X/1000/3600+“:“+X/1000%3600/60+”:“+X/1000%3600%60”)这很复杂,因为java中的演员阵容很强,这是完全错误的方式。把它放到一个Date类中,然后用DateFormatter格式化。嗨,paul,我只想要总时间,因为时间不能显示HH:mm:ss(比如25:30:30)。我知道的是通过某种表达式(例如:X/1000/3600+“:“+X/1000%3600/60+”:“+X/1000%3600%60”)进行转换。这很复杂,因为java中的强制转换非常强大,这是完全错误的方法。将其放入Date类中,然后使用DateFormatter对其进行格式化。