比如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;
/