关于两个日期间隔工作日的oracle sql实现

sysdate是系统时间  xx.dd是从数据库表中取出的时间,执行结果取出所有当前系统时间在5个工作日以后的结果集。

 

 

select * from tableName

 

where

     (trunc(sysdate -x.dd) -
       ((case WHEN (8 - to_number(to_char(x.dd, 'D'))) >
     trunc(sysdate - x.dd) + 1 THEN
     0
     ELSE
     trunc((trunc(sysdate - x.dd) -
     (8 - to_number(to_char(x.dd, 'D')))) / 7) + 1
     END)
     +
     (case WHEN mod(8 - to_char(x.dd, 'D'), 7) >
     trunc(sysdate - x.dd) - 1 THEN
     0
     ELSE
     trunc((trunc(sysdate - x.dd) -
     (mod(8 - to_char(x.dd, 'D'), 7) + 1)) / 7) + 1
         END))
    ) >=5

 

PS:关于java代码对于这一功能的实现我也写在了相应的分类里 大家可以看一下

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值