2013-12-10 3 views
1

У меня есть текстовое поле со случайными номерами от 1 до 52, которые являются неделями календаря и выпадающим списком, который упоминается как годы.Получение дат, выбрав неделю в оракуле

Например, если я выбираю 2 в текстовом поле с 2014 годом, то я хочу, чтобы даты указывались как 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) 

Пожалуйста, помогите.

ответ

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

+0

вы так много сэр, это был действительно полезен – user2357418

+0

У меня было еще одно сомнение. В этом запросе отображается только дата начала и дата окончания, можно ли отображать все дни недели? – user2357418

+1

@ user2357418: 'FirstSunday + (2-1) * 7 + 1 как Mon, FirstSunday + (2-1) * 7 + 2 как Tue, FirstSunday + (2-1) * 7 + 3 как Wed, ....' – valex

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 
    ); 
Смежные вопросы