Plsql 用于周末排除的oracle pl/sql:datepart()函数
我可以使用to_number(to_char())函数将所有周末从日期范围中排除吗Plsql 用于周末排除的oracle pl/sql:datepart()函数,plsql,Plsql,我可以使用to_number(to_char())函数将所有周末从日期范围中排除吗 例如,我的表中有两个日期列,例如开始和结束(格式为'06/06/2011 10:00:00 am'),我想估计完成开始的持续时间,不包括周六和周日 如果我没弄错的话,您希望计算两个日期之间的差值,但不包括结果范围内每个周末的2天。对吗 如果这是您想要的,则以下代码应符合以下假设: 我想开始和结束不会在周末 我并不是在确认结束早于开始 基本上,这只是计算出约会范围内有多少个周末的问题。很明显,每7天有一个周末。
例如,我的表中有两个日期列,例如开始和结束(格式为'06/06/2011 10:00:00 am'),我想估计完成开始的持续时间,不包括周六和周日 如果我没弄错的话,您希望计算两个日期之间的差值,但不包括结果范围内每个周末的2天。对吗 如果这是您想要的,则以下代码应符合以下假设:
- 我想开始和结束不会在周末
- 我并不是在确认结束早于开始
FUNCION dateDiff( dt_start DATE, dt_end DATE ) RETURN NUMBER
IS
raw_diff NUMBER;
weekends NUMBER;
BEGIN
raw_diff := dt_end - dt_start;
weekends := TRUNC( raw_diff / 7 );
IF( ( dt_start - TRUNC( dt_start, 'DAY' ) )
> ( dt_end - TRUNC( dt_end , 'DAY' ) ) )
THEN
weekends := weekends + 1;
END IF;
RETURN raw_diff - ( weekends * 2 );
END;