您的位置:首页 > 数据库 > Oracle

oracle 一个月的日期周期内按照周分组

2016-06-23 00:00 495 查看
摘要: 一个月的日期周期内按照周分组

给定一个月: 2016-06
星期一为一周的第一天, 这个月的日期周期内按周分组, 得到每一周的日期区间。

如下 : 2016-06-01 2016-06-05
2016-06-06 2016-06-12
2016-06-13 2016-06-19
2016-06-20 2016-06-26
2016-06-27 2016-06-30

[code=language-sql]select  min(dt) monday,
max(dt) sunday
from
(select level rn,
trunc(to_date('2016-6', 'YYYY-MM'), 'mm') + level - 1 dt,
max(decode(to_char(trunc(to_date('2016-6', 'YYYY-MM'), 'mm') + level - 1, 'd'), 2, level, 0)) over(order by level) flag
from dual
connect by level <= last_day(trunc(to_date('2016-6', 'YYYY-MM'))) - trunc(to_date('2016-6', 'YYYY-MM'), 'mm') + 1)
group by flag
order by min(rn);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: