在oracle中怎么计算当天是本月的第几周

在oracle中怎么计算当天是本月的第几周,第1张

这个算法的结果依赖于当前系统时间是什么时候…假设按照你说的,当前系统时间是星期六,那么它计算的结果就是说这个星期六是本月的第几个星期六。就拿12月来说,12月1日是星期六哦,所以你在12月1号查的时候它结果会是1哦,但是12月2日的时候,你查周日,它的结果仍然是1哦,因为是本月第一次出现的星期日哦!只有当你查12月8日的时候,才开始出现结果2哦…其实你可以在系统里选一些特殊的时间查一下就可以发现规律

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;

看结果是汉字还是英文。

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;

select case

when mod(1 + 7 - to_char(trunc(sysdate, 'MM'), 'D'), 7) +

trunc(sysdate, 'MM') + 28 - last_day(sysdate) > 0 then

0

else

1

end + 4

from dual

把其中sysdate替换为你的日期即可

如果想知道一个月有几个星期一,把mod括号中第一个1改为2即可,其他日期类推

以上就是关于在oracle中怎么计算当天是本月的第几周全部的内容,包括:在oracle中怎么计算当天是本月的第几周、在oracle中如何用sql语句计算一段时间中的星期六和星期天的天数请大侠赐教!急求!!!!!!!!!!!、oracle中是否有返回某一天是星期几的函数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10156589.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存