免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2577 | 回复: 6
打印 上一主题 下一主题

[求助] 有比较简单的计算两个日期之间差(仅工作日)的函数么? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-03-26 10:40 |只看该作者 |倒序浏览
客户提了新需求,要计算日期差(仅包含工作日),找了下,只找到:
强大的计算工作日数据库组件
http://bbs.chinaunix.net/forum.p ... mp;fromuid=14314239

想求教下各位大神,有木有简单一点的方法呢?

感谢

论坛徽章:
0
2 [报告]
发表于 2013-03-26 14:13 |只看该作者
工作日如何定义,周一到周五?国定假日算不算?
所以,这个只能去维护一张日期的表,记录工作日
create table calendar
(
work_date date,
vaction       char(1)
);

select count(*) from calendar
where work_date between :a and :b
  and vaction = 'N';

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
3 [报告]
发表于 2013-03-26 18:49 |只看该作者
回复 2# doni


    这样维护的量比较大吧,其实只需要维护法定假日就行(串休不算,串休算到周末里)

论坛徽章:
0
4 [报告]
发表于 2013-03-27 09:35 |只看该作者
本帖最后由 doni 于 2013-03-27 09:43 编辑

回复 3# renxiao2003


    我是这样处理的,批量维护时,按周一至周五为工作日
    然后在系统开发一个用户界面,专人维护其他的节假日(IT或HR都可以,因为这里的用途一般都与这两个部门相关:wink: )
    批量insert的功能,我也是做在这个用户界面内的

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
5 [报告]
发表于 2013-03-27 11:11 |只看该作者
回复 4# doni


    嗯。确实不错。我那么说的意思就是节假日的天数少于工作日。特别是如果仅维护法定节假日的话就更少了(周末用Oracle自带函数好像就能判断出来)。不过你这样也很简单。

论坛徽章:
0
6 [报告]
发表于 2013-03-29 15:18 |只看该作者
回复 2# doni


    感谢,工作日就是除去周末,国家的其他假期不考虑在内

论坛徽章:
0
7 [报告]
发表于 2013-03-29 15:38 |只看该作者
回复 6# ym221479


    这样更简单, 不用calendar这张表,
    只要to_char(work_date,'D'),根据结果判断是否工作日,即可计算天数了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP