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

Oracle10g 通过给出年份获取所有周的开始日期和结束日期,oracle10g,Oracle10g,我有一个查询,其中显示了一组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,

我有一个查询,其中显示了一组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);
但是这个查询的问题是,我只得到了第一周的日期,而不是接下来的连续几周。请帮助

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
     );

这里有一个问题,在这个查询中,2013年的第一周是从12月30日到1月5日,但这个查询显示的是从1月6日到12日jan@user2357418,不,第一周是指从太阳开始的一周。1月6日12月30日至1月5日是2013年的最后一周。但我希望2013年的第一周是12月30日至1月5日。是否可能,因为我尝试了很多,但都没有成功it@user2357418,如果您重新编写查询以2013年12月30日开始,则您的第52周日期为2013年12月22日,意味着将跳过13年12月29日,因为我们将计数限制为52。这真的是你需要的吗?不,不,我需要2014年的第一周,因为2013年最后一周的剩余天数加上2014年的剩余天数。至于52号伯爵,就让它在那儿吧。
 SELECT TRUNC(Trunc(to_date('2014', 'YYYY'),'YYYY')+ LEVEL * 7,'IW')-1 start_date , 
        level kkk
 FROM duaL
 CONNECT BY LEVEL <= 52