微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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


如下 :2016-06-012016-06-05
2016-06-062016-06-12
2016-06-132016-06-19
2016-06-202016-06-26
2016-06-272016-06-30

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','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','mm') + 1)
  group by flag
 order by min(rn);

原文地址:https://www.jb51.cc/oracle/213917.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐