工作日和非工作日数据查询

来源:互联网 发布:java 日期 毫秒差 编辑:程序博客网 时间:2024/05/15 02:36

1、  查询时间段的报表添加搜索条件,使得日期查询支持区分工作日、非工作日,默认不区分。工作日指周一到周五,非工作日指周六日。

网上查找了好久资料,解决了,分享给大家。


查询数据 区分工作日和非工作日,怎么做?
这样子可以吗?求出某一天是星期几 再去区分
天歌青帝(441739009)  9:15:51
SELECT   case
when (select to_char(sysdate - 1, 'd') from dual) <6 and   因为-1,所以6和7是周六和周日
   (select to_char(sysdate - 1,'d') from dual)>0  then   1,2,3,4,5是工作日
'工作日'
else
'非工作日'
end
FROM dual

然后你要哪一天都可以吧。。

VYanJoy&乐坚&杰(506284835)  9:19:11
比如这个查询sql吧
select 
    d.province_name name,
    sum(t.app_t_count) sum1,   
    sum(t.app_t_count_ol) sum2,  
    sum(t.app_t_premium_ol) sum3,  
    sum(t.app_n_count) sum4
    from netsell_prp_appwap t,D_COMPANY d 
  where t.organ_code = d.organ_Code
  and t.statistic_date between to_date('2013-08-05', 'yyyy-mm-dd') and
                       to_date('2013-09-05', 'yyyy-mm-dd') --统计开始日期 统计结束日期
    and t.product_code = 'A' --自驾游
   group by d.province_code, d.province_name 
   order by d.province_code, d.province_name 
VYanJoy&乐坚&杰(506284835)  9:21:13
要的是这一段时间 非工作日 的查询数据。
天歌青帝(441739009)  9:22:45
再加一个条件喽。。。 先过滤8.15-9.15号 然后再加 to_char(t.statistic_date-1,'d')<6
天歌青帝(441739009)  9:24:29
非工作日就是to_char(t.statistic_date-1,'d')>5
天歌青帝(441739009)  9:38:10
但是你要考虑到有可能中秋等农历节日 我就偶弥陀佛了
VYanJoy&乐坚&杰(506284835)  9:38:51
ok了,那个不用考虑,谢谢了。
天歌青帝(441739009)  9:39:23
嗯 不考虑就好 要是考虑的话 唉。。。

如果要的是某一天

select  to_char(to_date('2013-09-12','yyyy-MM-dd')-1,'d') from dual

select  to_char(to_date('2013-09-12','yyyy-MM-dd')-1,'day') from dual