问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

oracle中怎么得到日期相减除去周末后的天数

发布网友 发布时间:2022-04-08 10:42

我来回答

5个回答

热心网友 时间:2022-04-08 12:12

以2015年12月1日至2015年12月31日为例。其中周六和周日算周末。

查询除周末以外的天数(oracle中以周日为1,周一为2……周六为7),可用如下语句:

with t as
(select rownum-1 rn from al connect by rownum<=100)
select count(*) from t 
where to_char(to_date('2015-12-01','yyyy-mm-dd')+rn,'yyyy-mm-dd') between '2015-12-01' and '2015-12-31' 
and to_char(to_date('2015-12-01','yyyy-mm-dd')+rn,'d') not in (6,7);

查询结果:

查日历可得,2015年12月1日至2015年12月31日期间,周六周日的天数合计8天,31-8=23,与语句所得结果一致。

热心网友 时间:2022-04-08 13:30

时间格式参数time1,time2
to_char(time1,'ww') 获取时间是一年中的多少周
to_char(time1,'ddd')获取时间是一年中的多少天

那么你的需求写出来就是这样的:
to_char(time1,'ddd')-to_char(time2,'ddd')-2*(to_char(time1,'ww')-to_char(time2,'ww'))

热心网友 时间:2022-04-08 15:04

也许用存储过程能够实现
a 是2个日期之间相差的天数
b 是除去周末(周六和周日)后的天数
b = a - a/7*2
我只是提供一个思路 具体的还是要你自己写了

热心网友 时间:2022-04-08 16:56

由于存在不是整周,和起始日期,终止日期星期不定的复杂情况,所以简单的sql语句貌似无法实现.
写个函数,从起始日期开始,判断不是周末的话就加1天,只到终止日期.
create or replace function day_count(t1 date,t2 date)
return number
is
n number:=0;
tt date;
begin
tt:=t1;
while tt<=t2 loop
n:=n+(case when to_char(tt,'day') in('星期六','星期日') then 0 else 1 end);
tt:=tt+1;
end loop;
return n;
end;
/

--注意:其中的'星期六','星期日'这种表示跟字符集有关,可以通过
select to_char(sysdate) from al; 测试一下.
测试程序:
declare nn number;
begin
nn:=day_count(to_date('2010-08-01','yyyy-mm-dd'),to_date('2010-08-23','yyyy-mm-dd'));
dbms_output.put_line(nn);
end;
/

热心网友 时间:2022-04-08 19:04

count下总共几周,然后乘以2
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
孤胆枪手怎么设置局域网啊、 我家小狗刚领来,没有名字,拜托大家起个名字。 护肤品代加工 水浒Q传跨服PK是怎么回事啊 新水浒Q传什么叫PK保护状态,上号不到一分钟就被打,求解 水浒Q传 为什么要pk有什么好处? 为什么贷款每次都审核失败 有谁能说一下手机贷审核不通过的原因吗?我都审核好多次了都不能通过... 贷款审核失败是什么原因 为什么贷款未通过审核 人生三碗面是什么面 词语填空田地什么人烟什么面如什么提什吊么胸有什么破除什么 北方人吃什么面? 什么面什么什么面什么成语?成语? 什么人一面 人面什么什么的成语? 人什么面什么的成语 成语:什么人一面 ()人()面:填数字,组成成语. cad中1:1显示图形 excel表满足某个条件显示数字1? iphone6 plus 设置里显示1是什么意思 win7 显示器1 显示器2 是什么意思 华为手机误按了1显示英文字母咋回事 在Excel中如何输入显示1 EXCEL选定区域中有1显示1 没1显示所选区域里的最大数 别人夸你优秀神回复 如果有人骂你笨什么的该怎么神回复 office excel2010怎么设置1显示为0001? 被别人骂了,然后你是如何神回复的? 人有着多少面? 手机QQ怎么屏蔽群声音 怎么让QQ的群信息不发声音? qq,群里来消息怎么没有声音 yy语音签到功能开启方法教程 如何关闭qq2009群消息弹出提示 qq怎么设置群消息放在任务栏也有声音? 歪歪如何开通频道签到功能 Qq空间给好友说说点赞如何只让好友一个人看到我的点赞,其他人看不到? 冻结了怎么解冻 被封怎样解决 就是有蓝牙发射器连接话筒但是电视没有声音 麦克风与电视机已蓝牙连接,但电视机上放全民k歌,麦克风却无声音? 小米蓝牙话筒链接小米电视后,声音能从电视输出吗?- 问一问 创维电视连接用蓝牙的无线麦克风怎么没有声音 如何写好一份成功率高的投标书 忍者必须死3有没有防沉迷 忍者必须死3有没有防沉迷? 忍者必须死了3注册了成年账号登录未成年账号还有防沉迷吗 苹果旧手机数据转到新手机,没有从iphone传输