java - SEC_TO_TIME() 转换为 java.sql.Time 错误

标签 java mysql

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

我所做的是使用 SEC_TO_TIME(sum(col)/1000) ,但是当映射到 java.sql.Time 时,当结果中的小时值超过 24(ex:36:33: 33)

然后我想到了另一种方式,不使用sec_to_time,只是将微秒映射为Bigdecimal, 但不知道我应该使用什么 java 类来将日期格式化为 hh:mm:ss 的默认格式限制为 24...?

最佳答案

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

SEC_TO_TIME 可以完成您需要的所有格式设置,对吗?因此,只需选择该表达式并将其作为 StringResultSet 中检索。

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

关于java - SEC_TO_TIME() 转换为 java.sql.Time 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2607472/

相关文章:

java - 如何以正确的方式过滤 ArrayList 的内容?

php - 在 MySQL 中获取 start_date 和 end_date 内的项目

java - IPCZQ cookie httpOnly

php - 如何在我的 Mac 上运行 processwire 网站?

MySQL如何将表连接为子数组?

php - 如何将变量数据存储到我的数据库中

php - phalcon 更新前自动选择

Java - 在 JEditorPane 中设置选择的字体大小?

java - 为什么用于调用方法的 Java 字节码会隐式获取和释放监视器?

java - 用Java模拟链表