在oracle中如何用sql语句计算一段时间中的星期六和星期天的天数?请大侠赐教!急求!!!!!!!!!!!
3个回答
展开全部
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;
看结果是汉字还是英文。
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;
看结果是汉字还是英文。
展开全部
举例2011年,一共有365天,换算为星期是52周零1天。
1.1 第1天, 是周六
那第52周的最后一天为周五即12.30是周五
12.31是第365天,52周后剩下的1天是周六。
可以根据上面的规律去计算两个时间段内周六和周日的天数。
仅提供思路参考。
1.1 第1天, 是周六
那第52周的最后一天为周五即12.30是周五
12.31是第365天,52周后剩下的1天是周六。
可以根据上面的规律去计算两个时间段内周六和周日的天数。
仅提供思路参考。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select count( case when to_char(dt,’DY’)='星期六' or to_char(dt,’DY’)='星期日' then 1
else 0 end) as cnt from tb where dt between a an b
else 0 end) as cnt from tb where dt between a an b
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询