通过给出年份来获取所有星期的开始日期和结束日期

问题描述 投票:1回答:2

我有一个查询,显示一组52个数字以及该周的各个日期

         SELECT kkk, TO_CHAR (start_date, 'DD-MON-YYYY'),
              TO_CHAR (start_date + 6, 'DD-MON-YYYY') AS end_day
            FROM (SELECT       TRUNC (TRUNC (TO_DATE ('2014', 'YYYY'), 'YYYY') + 1 * 7,
                        'IW'
                       )
               - 1 start_date,
               ROWNUM AS kkk
          FROM DUAL
    CONNECT BY ROWNUM <= 52);

但是此查询的问题是我只得到第一周的日期,但没有得到接下来的连续几周。请帮助

oracle10g
2个回答
0
投票

尝试这样,

SELECT kkk,
       TO_CHAR(start_date, 'DD-MON-YYYY') start_date, 
       TO_CHAR(start_date + 6, 'DD-MON-YYYY') end_day
FROM(
     SELECT TRUNC(Trunc(to_date('2014', 'YYYY'),'YYYY')+ LEVEL * 7,'IW')-1 start_date , 
            ROWNUM kkk
     FROM duaL
     CONNECT BY LEVEL <= 52
     );

代替ROWNUM,您也可以使用LEVEL,Like,

 SELECT TRUNC(Trunc(to_date('2014', 'YYYY'),'YYYY')+ LEVEL * 7,'IW')-1 start_date , 
        level kkk
 FROM duaL
 CONNECT BY LEVEL <= 52

0
投票

我需要类似的帮助。

我想限制Trunc的日期范围。如下:

[从昨天到今年年底。年份应该是动态的,以便明年可以适应。

我已经开始了:

= trunc(sysdate-1)

现在我只想念到今年年底

© www.soinside.com 2019 - 2024. All rights reserved.