请教如何在ORACLE中把两个时间相减

在ORACLE的过程中,比如起始时间是BEGIN_DATE:=SYSDATE;过了半个钟头后,结束END_DATE:=SYSDATE;运行时长TIME (DATE型), 并且TIME := END_DATE - BEGIN_DATE ;
我想要的结果是: 计算出来的TMIE值会等于 00:30:00 这种格式的,让人看起来一目了然;
我在过程里写:
vs_time := to_date((to_date(vs_end_date, 'hh24:mi:ss') -
to_date(vs_begin_date, 'hh24:mi:ss')) * 86400);
(这时过程的报错为: 小时值必须介于0-23之间)

请教在过程里应该如何写该SQL语句,感谢!
最新回答
安季浅空

2024-11-27 07:40:00

vs_time := to_char(date'2007-1-1' + end_date - begin_date, 'hh24:mi:ss') ;

vs_time需要是一个varchar2类型。

我测试通过了,你try一下。

这个“date'2007-1-1'”,其实你使用任何一天都可以——因为不care日期只关心时分秒。