通过在oracle中选择一周来获取日期

时间:2013-12-10 05:46:42

标签: oracle10g

我有一个文本框,其中包含从1到52的随机数字,它们是日历的周数和下拉数字,提到年份。

例如,如果我在2014年的文本框中选择2,那么我希望将日期提及为05-1-2014 - 11-1-2014。有可能做到这一点。

此外,我尝试过一个不符合我要求的查询

SELECT date_val, TO_CHAR (date_val, 'ww')
  FROM (SELECT     TO_DATE ('01-jan-2013', 'DD-MON-YYYY') + LEVEL AS date_val
              FROM DUAL
        CONNECT BY LEVEL <= 365)

请帮忙。

2 个答案:

答案 0 :(得分:0)

试试这个。此处2是一年中的周数(FirstSunday+(NumberOfWeek-1)*7 as WeekStart, FirstSunday+ NumberOfWeek*7-1 as WeekEnd),2014是一年:

select 
       FirstSunday+(2-1)*7 as WeekStart,
       FirstSunday+ 2*7-1 as WeekEnd    

from 
(
Select NEXT_DAY(TO_DATE('01/01/'||'2014','DD/MM/YYYY')-7, 'SUN')  as FirstSunday 
       from dual
)

SQLFiddle demo

答案 1 :(得分:0)

试试这个,

SELECT start_date, 
       start_date + 6 end_day
FROM(
     SELECT TRUNC(Trunc(to_date('2014', 'YYYY'),'YYYY')+ 1 * 7,'IW')-1 start_date 
     FROM duaL
     );