如何在一个月内找出星期日?
请帮我解决这个问题..
星期日没有:当月有4个,我需要从一个月的日子中减去这些数量
::一个月内的天数 - 周日
如果我通过了之间和之间的日期,我需要获得该期间的星期日数。
非常感谢你的帮助。
Sunitha ..
答案 0 :(得分:0)
试试这个:
select to_char(last_day(sysdate),'dd') -
((next_day(last_day(trunc(sysdate)),'sunday')-7
-next_day(trunc(sysdate,'mm')-1,'sunday'))/7+1) as result
from dual
对于一段时间之间的计数日期,您可以执行此操作:
SELECT (next_day(TRUNC(TO_DATE('28/09/2014','DD/MM/YYYY')),'sunday') -
next_day((trunc(TO_DATE('13/09/2014','DD/MM/YYYY'))),'sunday')-7)/7+1 AS RESULT
FROM DUAL
答案 1 :(得分:0)
如果您有来自和来自日期,则应首先使用分层查询生成它们之间的所有日期。然后只过滤它们的星期日。
select count(1)
from (
select start_date + level - 1 as dates
from dual
connect by start_date + level - 1 <= end_date
)
where to_char(dates,'fmday') = 'sunday';
如果您想计算当月的非星期日数,请查找当月的第一天和最后一天,并按照与上述相同的步骤进行。
select count(1)
from (
select start_date + level - 1 as dates
from (
select trunc(sysdate,'month') as start_date,
last_day(sysdate) as end_date
from dual
)
connect by start_date + level - 1 <= end_date
)
where to_char(dates,'fmday') != 'sunday';
答案 2 :(得分:-1)
SELECT (
(
TO_CHAR(next_day(last_day(TRUNC(sysdate))-7,'SUN'),'DD')-
TO_CHAR(next_day(last_day(TRUNC(sysdate-30)),'SUN'),'DD')
)/7
)+1
FROM dual;