如何计算两个日期的时间差(去除非工作时间)
比如2012-12-05 到 2012-12-15
直接减时间差240小时,但是只计算上班时间(周一到周五 08:00-12:00 13:00-17:00)的话
该怎么写sql呢
下面是一个计算两个日期差的函数
CREATE OR REPLACE Function ITSL.timeinterval (d_begindate Date,d_enddate Date) --计算两个日期之间相差的天数、小时数、分钟数、秒数
Return Varchar2
Is
s_timeinterval Varchar2(40);n_timeinterval Number;n_day Number;n_hour Number;n_minute Number;n_second Number;n_timesurplus Number;
Begin
If d_begindate Is Null Or d_enddate Is Null Then
s_timeinterval:=Null;
Else
Select (d_enddate-d_begindate)*24*60*60 Into n_timeinterval From dual;
n_day:=floor(n_timeinterval/24/60/60);
n_timesurplus:=Mod(n_timeinterval,24*60*60);
n_hour:=floor(n_timesurplus/60/60);
n_timesurplus:=Mod(n_timesurplus,60*60);
n_minute:=floor(n_timesurplus/60);
n_timesurplus:=Mod(n_timesurplus,60);
n_second:=floor(n_timesurplus);
s_timeinterval:=n_day||'天'||n_hour||'小时'||n_minute||'分'||n_second||'秒';
End If;
Return s_timeinterval;
End;
/