求每个月第几周是那几天的SQL语句写法

贝鱼 2012-11-05 08:50:05
如,11月份
第1周是2012-11-01到2012-11-04
第2周是2012-11-05到2012-11-11
第3周是2012-11-12到2012-11-18
第4周是2012-11-19到2012-11-25
第5周是2012-11-26到2012-11-30
.....
不知道怎样写可以实现,求大神们帮助
...全文
347 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
贝鱼 2012-11-08
  • 打赏
  • 举报
回复
谢谢hudingchen,好强大~
hudingchen 2012-11-05
  • 打赏
  • 举报
回复

SELECT row_number() over(ORDER BY m.groupid DESC) rn,
       MIN(m.t_date) start_date,
       MAX(m.t_date) end_date
  FROM (
        SELECT '201211' || to_char(LEVEL,'fm09') t_date,
               to_char(to_date('201211' || to_char(LEVEL,'fm09'),'yyyymmdd') - 1, 'd') - 1 - LEVEL groupid
          FROM dual
        CONNECT BY LEVEL <= LAST_DAY(TO_DATE('201211', 'yymm')) - TO_DATE('201211', 'yymm') + 1
       ) m
GROUP BY m.groupid
ORDER BY m.groupid DESC

        RN START_DATE END_DATE
---------- ---------- ---------
         1 20121101   20121104
         2 20121105   20121111
         3 20121112   20121118
         4 20121119   20121125
         5 20121126   20121130
'201211'是传递的参数

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧