【发布时间】:2020-05-29 11:27:21
【问题描述】:
我在下面的列中使用 oracle DB
START_TIME INTERVAL DAY(0) TO SECOND(0)
我在 java 代码中使用 jdbc 模板来使用行映射器和 getString() 方法访问此值,如下所示:(我正在运行基本的选择查询以从 DB 中获取值)
String startTime = rs.getString("START_TIME");
而我得到的值就是这种格式
System.out.println(startTime); // 0 9:30:0.0
我无法在 HH:MM 格式字符串中格式化此值。我不需要秒,因为我忽略了这个值。所以我想要的是这样的09:30
Found this which looks similar 但我正在为 DTO 使用基于 yaml 的 swagger 开放 API 生成,但不知道如何实现这一点。另外,我没有使用休眠。它是普通的 JDBC 模板。
编辑: 观察到当我在 DB 中有 +00 11:00:00.000000 时,rs.getString("START_TIME") 获取 0 11:0:0.0 而当 +00 09:30:00.000000 它获取 0 9:30:0.0 但我的要求是 11:00 和09:30。希望这会有所帮助。
【问题讨论】:
-
所以,让我看看我是否有你的问题,你有一个类似 "09:30:0.0" 的字符串,但你需要一些东西像 "09:30" ?
-
你会得到 1 天或更长时间的间隔吗?
-
@ΦXocę웃Пepeúpaツ 我有一串 0 9:30:0.0 我想要 09:30 我尝试了字符串操作,但我我不确定这是否是最好的方法。不确定我是否正确处理了 oracle 的间隔类型。
-
@MT0 不,这不会发生。这只是大约小时和分钟。这就是为什么我们有 DAY(0)
-
这就是我问的原因。如果您希望将
1 9:30输出为33:30,那么这与将0 X:YY转换为0X:YY是完全不同的解决方案。
标签: java sql oracle jdbctemplate