【问题标题】:oracle SUBSTR date durationoracle SUBSTR 日期持续时间
【发布时间】:2010-01-13 04:49:28
【问题描述】:

当我查询 SUBSTR(e.updatetime - s.updatetime, 1,30) 我会得到下面的结果 +000000001 05:06:47.388000

这可以保存在 java.util.Date 中吗?或者我应该使用除 String 之外的哪个 java 类来轻松检索日、分、小时...

p/s: e.updatetime 是时间戳类型

【问题讨论】:

  • SUBSTR 需要一个字符串作为其第一个参数,但是您传递的是一个间隔。因此,它为您进行了隐式数据类型转换——最好使用 TO_CHAR 进行显式数据类型转换。最好使用 Gary 的建议并避免任何转换为​​字符串。

标签: java oracle hibernate jpa


【解决方案1】:

从单独的字段开始,然后根据需要将它们连接起来。

select extract (day from (time_b-time_a)), 
       extract (hour from (time_b-time_a)), 
       extract (minute from (time_b-time_a)), 
       extract (second from (time_b-time_a)) 
from ....;

【讨论】:

    【解决方案2】:

    这个 sn-p 也可能有帮助:

    select ...,  
        extract (day    from (j.finished_date - j.started_date)) * 86000 + 
        extract (hour   from (j.finished_date - j.started_date)) * 3600  +
        extract (minute from (j.finished_date - j.started_date)) * 60 +
        extract (second from (j.finished_date - j.started_date)) as "duration"
    

    【讨论】:

      猜你喜欢
      • 2016-12-31
      • 2021-12-21
      • 1970-01-01
      • 2014-02-18
      • 1970-01-01
      • 1970-01-01
      • 2020-01-03
      • 2012-01-09
      • 2013-11-06
      相关资源
      最近更新 更多