【发布时间】:2023-03-18 23:15:01
【问题描述】:
我正在尝试计算忽略非工作时间的 2 个日期时间值之间的差异。最初它只是查看差异并将其计算为分钟,但是它只需要计算周一至周五上午 9 点至晚上 8 点之间以及周六上午 9 点至下午 1 点之间的小时数,而忽略所有其他时间。我在一个 oracle 10g 系统上。
我目前的代码如下:
begin
debug.debug('sp_access');
update cl_case b
set time_to_sp_access =
(
select (x.date_created-e.date_created)*1440
from cl_case c, eventlog e, eventlog x
where c.id=e.case_id
and x.case_id=e.case_id
and b.id=e.case_id
and e.id=
( select min(id) from eventlog mini
where mini.case_id=e.case_id
and mini.cl_code in ('AAAA','BBBB','CCCC','DDDD')
)
and x.id=
( select min(id) from eventlog minix
where minix.case_id=e.case_id
and minix.cl_code in ('EEEE','FFF','GGG','HHHH','JJJJ','KKKK','LLLL')
)
)
where id in
( select unique case_id
from eventlog elog
where elog.sptime_needs_setting ='Y'
);
commit;
end sp_access;
我怎样才能让它计算指定时间之间的时间?
谢谢
【问题讨论】:
-
公共假期呢?
标签: sql oracle plsql oracle10g date-arithmetic