2010-01-13 109 views
1

当我这样做查询SUBSTR(e.updatetime - s.updatetime,1,30),我会得到下面的结果 000000001 05:06:47.388000甲骨文SUBSTR日期时间

可以将这保存java.util中。日期?或Java类我应该使用非字符串的这缓解我找回天,分钟,小时...

P/S:e.updatetime是时间戳类型

+2

SUBSTR需要一个字符串作为第一个参数,不过你传递的时间间隔。因此它正在为您执行隐式数据类型转换 - 最好使用TO_CHAR进行显式数据类型转换。使用Gary的建议可能会更好,并避免任何转换。 – 2010-01-13 06:04:41

回答

3

开始与不同的领域,就加入他们了如你所愿。

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 ....; 
1

这个片段可能也有帮助:

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"