网站建设资讯

NEWS

网站建设资讯

oracle如何求工作日,oracle日期运算

Oracle计算指定日期内的工作日(不包含周末)

~~~

成都创新互联公司主营弥渡网站建设的网络公司,主营网站建设方案,手机APP定制开发,弥渡h5微信小程序开发搭建,弥渡网站营销推广欢迎弥渡等地区企业咨询

1、获取当天是礼拜几:selectto_char(sysdate,'d')fromdual;--礼拜天为1,礼拜一为2,类推

2、获取 两个时间段间的 工作日:

select(trunc(end_dt - start_dt) -

((case

WHEN(8- to_number(to_char(start_dt,'D'))) trunc(end_dt - start_dt) +1THEN0

ELSE

      trunc((trunc(end_dt - start_dt) -

(8- to_number(to_char(start_dt,'D'))))/7) +1END) +

(case

WHENmod(8- to_char(start_dt,'D'),7) trunc(end_dt - start_dt) -1THEN0

ELSE

trunc((trunc(end_dt - start_dt) - (mod(8- to_char(start_dt,'D'),7) +1))/7) +1END)))

asworkingdays

fromdual

下面的sql可以直接运行:

select(trunc(to_date('2010-11-11','yyyy-mm-dd') -to_date('2010-11-07','yyyy-mm-dd')) -

((case

WHEN(8- to_number(to_char(to_date('2010-11-07','yyyy-mm-dd'),'D'))) trunc(to_date('2010-11-11','yyyy-mm-dd') -to_date('2010-11-07','yyyy-mm-dd')) +1THEN0

ELSE

trunc((trunc(to_date('2010-11-11','yyyy-mm-dd') -to_date('2010-11-07','yyyy-mm-dd')) -

(8- to_number(to_char(to_date('2010-11-07','yyyy-mm-dd'),'D'))))/7) +1END) +

(case

WHENmod(8- to_char(to_date('2010-11-07','yyyy-mm-dd'),'D'),7) trunc(to_date('2010-11-11','yyyy-mm-dd') -to_date('2010-11-07','yyyy-mm-dd')) -1THEN0

ELSE

trunc((trunc(to_date('2010-11-11','yyyy-mm-dd') -to_date('2010-11-07','yyyy-mm-dd')) - (mod(8- to_char(to_date('2010-11-07','yyyy-mm-dd'),'D'),7) +1))/7) +1END)))

asworkingdays

fromdual

~~~

怎么在oracle中,计算出任意日期之间的工作日天数

怎么在oracle中,计算出任意日期之间的工作日天数

=NETWORKDAYS(A10,B10),

A10起始日期,B10结束日期,这个只能计算双休.

Oracle sql 查询语句 分别查询工作日和周末数据

select count(id),sum(case when day='星期一' or day='星期二' or day='星期三' or day='星期四' or day='星期五' then 1 else 0 end) 工作日,sum(case when day='星期六' or day='星期日' then 1 else 0 end) 周末 from table

另外:我发现你的表中有重复值啊,这个怎么算,不管么?还是要去重?这张表(我说的是例子)似乎有点问题。

还应该由其他写法,暂时就想起这一种来。


当前题目:oracle如何求工作日,oracle日期运算
路径分享:http://njwzjz.com/article/hsdooh.html