我正在尝试查找一个月中Xday的数量(星期一,星期五等)。我总是可以在一个月之内浏览几天,找到他们的星期几,总结并存储,但是我认为有更好的方法可以做到这一点。

理想情况下,我希望得到“2015年9月有几个星期一,星期二和星期五(或其他日期)?”的结果。

我可以找到如何在一段时间内获得工作日。我可以从数据库中已经输入的日期中获取此类信息,但是我想知道有一个星期二,即使那天没有数据。

最佳答案

Michiel T答案的一种变体,使用trunc和month格式参数来获取该月的第一天:

select count(*)
from
  (select trunc(sysdate, 'MM') + (level - 1) dt
   from dual
   connect by level <= extract(day from last_day(trunc(sysdate, 'MM'))))
where to_char(dt, 'FMDAY') = 'MONDAY'

10-06 05:37