select count( case when to_char(dt,’day’)='星期六' or to_char(dt,’day')='星期日' then 1
else 0 end) as cnt
from
(
select d1+lv-1 dt
from
(
select level lv
from dual
connect by level <= trunc(d2 -d1, 0)
) tt
) tm;
自己处理下临界值,这个是两边都取;如果是英文字符集,把星期改称英文,至于什么字符集,用这个判断
select to_char(sysdate, 'day') from dual;
看结果是汉字还是英文。
这个算法的结果依赖于当前系统时间是什么时候…假设按照你说的,当前系统时间是星期六,那么它计算的结果就是说这个星期六是本月的第几个星期六。就拿12月来说,12月1日是星期六哦,所以你在12月1号查的时候它结果会是1哦,但是12月2日的时候,你查周日,它的结果仍然是1哦,因为是本月第一次出现的星期日哦!只有当你查12月8日的时候,才开始出现结果2哦…其实你可以在系统里选一些特殊的时间查一下就可以发现规律
select sysdate 当时日期,
next_day(sysdate,'星期一') 下周星期一,
next_day(sysdate,'星期二') 下周星期二,
next_day(sysdate,'星期三') 下周星期三,
next_day(sysdate,'星期四') 下周星期四,
next_day(sysdate,'星期五') 下周星期五,
next_day(sysdate,'星期六') 下周星期六,
next_day(sysdate,'星期日') 下周星期日 from dual;
select sysdate 当时日期,
trunc(sysdate) 今天日期,
trunc(sysdate,'day') 本周星期日,
trunc(sysdate,'month') 本月初,
trunc(sysdate,'q') 本季初日期,
trunc(sysdate,'year') 本年初日期 from dual;
看看有你要的结果没。
select to_char(sysdate,'day') day from dual;
会显示中文,例如: 星期二
select to_char(sysdate,'d') day from dual;
会显示是一周的第几天,不过外国星期日才是第一天,所以如果你把周一当第一天的话,需要
select to_char(sysdate-1,'d') day from dual;
以上就是关于在oracle中如何用sql语句计算一段时间中的星期六和星期天的天数请大侠赐教!急求!!!!!!!!!!!全部的内容,包括:在oracle中如何用sql语句计算一段时间中的星期六和星期天的天数请大侠赐教!急求!!!!!!!!!!!、在oracle中怎么计算当天是本月的第几周、oracle 月内周计算等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)