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

oracle db 如何用一条sql查询2个时间之间的工作时间间隔

发布网友 发布时间:2022-05-02 05:43

我来回答

3个回答

懂视网 时间:2022-05-02 10:04

OR REPLACE FUNCTION "FUN_BETWEENDAYS" (start_dt date, end_dt date) return int is t_days int; begin select (trunc(end_dt - start_dt) - ((case WHEN (8 - to_number(to_char(start_dt,‘D‘))) > trunc(end_dt - start_dt) + 1 THEN 0 ELSE trunc((trunc(end_dt - start_dt) - (8 - to_number(to_char(start_dt,‘D‘))))/7) + 1 END) + (case WHEN mod(8 - to_char(start_dt, ‘D‘), 7) > trunc(end_dt - start_dt) - 1 THEN 0 ELSE trunc((trunc(end_dt - start_dt) - (mod(8 - to_char(start_dt,‘D‘),7) + 1))/7) + 1 END))) into t_days from dual; return t_days; end FUN_BETWEENDAYS

 

两个日期间隔三个工作日的sql语句

标签:font   ase   trunc   工作   ber   class   ace   function   number   

热心网友 时间:2022-05-02 07:12

你的时间保存数据类型是什么?date么?如果是date,判断时间点所属范围,如果开始时间属于14-18,结束时间属于9-12,并且时间相减的结果大于1,那么就可以得到结果为,时间相减(得到答案为天)*24-时间相减取整数(trunc)*17+2,如果如果开始时间属于14-18,结束时间属于9-12,并且时间相减的结果小于1,那么结果为,时间相减(得到答案为天)*24-15,其他情况均为时间相减(得到答案为天)*24-时间相减取整数(trunc)*17。
注:时间相减得到的应该是带有小数的。(这些是可以用case when语句搞定的,不过日期这块可能还需要调整,我仅仅靠想象是想不出来了,还要靠你自己试验)
如果是字符类型的,那么就用 to_date转一下,或者直接计算减法都可以,具体的判断和上面差不多。追问的确是一种方法,感觉好复杂哦-_-!!!!

case 开始 when 9-12
case 结束 when 9-12
when 12-14

when 14-18

else

end
when 12-14

。。

when 14-18

。。

else

。。

end

追答错了,不是这么写的是一个case when
类似
select case when 开始时间 14-18 and 结束时间 9-12 and 结束时间-开始时间>1 then (结束时间-开始时间)*24-trunc(结束时间-开始时间)*17+2 when 开始时间 14-18 and 结束时间 9-12 and 结束时间-开始时间<1 then (结束时间-开始时间)*24-15 else (结束时间-开始时间)*24-trunc(结束时间-开始时间)*17 end

热心网友 时间:2022-05-02 08:30

先算两个日期相隔几天,记为dayBetween(日期相减);
dayBetween -1则为中间完整工作的天数,计时:(dayBetween -1)*7,
再加上开始时间(dataTime1)与当天结束时间的间隔以及结束时间与结束那天开始时间的间隔追问例子给出的是比较好算的情况,如果开始时间在早上或者结束时间在早上,你的方法都没有扣掉中午的时间,还有更特殊的是开始时间,结束时间都有可能不是工作时间,我自己觉得是还有不少情况要考虑,所以如果需要满足条件的语句会好复杂!
有没有简单的实现方法呢?

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
cad里面打完字怎么还原十字架 财务建帐需要什么 建账建账的基本要求 当爱情与亲情需要丢弃一样时,你会选择丢弃哪一方 当爱情和亲情有冲突时你会怎样决择?你会为你所爱的人不顾一切吗? 剑网三 查看余额 因为某些特殊原因不好登陆游戏查看,求其他方式_百度知 ... 右肺上叶中叶结节灶怎么回事 节能门窗有哪些标准 节能门窗有哪些 节能门窗具有哪些特征 哪个应用会赚360代金卷 360超级享玩卡 送的30元。无门槛代金券 有人知道360游戏中心的代金劵怎么用吗 verilog 中 编译时如何添加一个.v文件 初学者请教Verilog.不同的module可以放在同一个.V文件里吗 verilog宏定义对一个.v文件还是整个project有效? 文件扩展名 .v是什么程序语言的扩展名 狼牙山五壮士描写一个可歌可泣的英雄故事全面突出了一个什么字? 在华夏5000年历史中现了无数可歌可沥的英雄儿女你知道哪些英雄人物及其事? 在*战争年代涌现出许许多多可歌可泣的英雄人物请你写几个? 黄继光可歌可泣的故事 革命先烈可歌可泣的故事300字的,速答,谢谢 三国演义里可歌可泣的英雄故事有哪些? 抗美援朝中有哪些可歌可泣的英雄故事,值得青少年学习? 长达八年之久的抗日战争中涌现出哪些可歌可泣的抗日英雄人物和故事? 怒江大桥有什么可歌可泣的英雄故事? 想入一台macbook pro,使用ps的话用什么鼠标 古今爱国志士可歌可泣的英雄事迹 在革命战争年代涌出许许多多可歌可泣的人物,请写出几个? ps/2接口的鼠标什么牌子好? 寄快递到台湾需要提供哪些资料,台湾统编是什么 快递到台湾,关于统编号的问题 寄快递到台湾,急求总编号码…… 顺丰快递寄往台湾运单怎么填写,顺丰快递单填写澹 Vivo手机怎样投屏到电视? 实用微信小技巧:微信零钱提现怎么免手续费 办公室电脑,WIN7系统,添加了网络打印机。但显示脱机。怎办?? 一台打印机 几台电脑 连共享的 但是 本地连接打印机的电脑 惠普4670打印机脱机无法打印怎么处理 局域网内的打印机经常脱机,禁用本地连接再启用就好了 win7系统无法添加远程打印机怎么解决 假体隆胸可以母乳吗? 隆胸后可以喂母乳么,有尝试过的宝妈给点建议谢谢! 请问怎样才能把优酷视频刻录成DVD光盘 广东假体隆胸后可以母乳喂养吗? 优酷的视频下载后刻成DVD碟的详细步骤是什么? 做完假体隆胸以后,孩子能不能母乳喂养 假体隆胸后,孩子还能喝母乳吗 如何刻录DVD视频光盘?优酷上下载文件! 优酷的iku下载的视频flv文件如何刻录在碟片上