2017-01-28 3 views
2

Когда я выбираю дату из двойного. Я должен отображать все даты в конкретную неделю с днями.Получить все даты в неделю

Сначала я получить номер недели с помощью

select to_char(sysdate,'iw') FROM dual 

Используя номер недели, я хочу, чтобы получить все даты этой конкретной недели. Я использовал это.

SELECT (TRUNC (TO_DATE (SUBSTR ('201704', 1, 4) 
     || '0131', 'YYYY'|| 'MMDD'), 'IYYY') + 
       (7 * (TO_NUMBER (SUBSTR ('201704', 5)) - 1))) AS iw 
FROM DUAL 

мой вход SYSDATE.

Мне нужно получить о/р, как показано ниже.

23-Jan-2017 
24-Jan-2017 
25-Jan-2017 
26-Jan-2017 
27-Jan-2017 
28-Jan-2017 
29-Jan-2017 
+0

Где ваш код? См.: [Ask] –

+0

C'mon - когда вы публикуете вопрос о домашнем задании, вы должны указать код, который вы написали, сообщить нам, какие результаты вы ожидали, что у вас есть, и что случилось с тем, что вы получили. В противном случае вам не повезло. –

+0

mr C'mon, пожалуйста, проверьте nw и поблагодарите u за ур обратной связи –

ответ

0

Попробуйте это:

select trunc(sysdate,'IW') + level - 1 
from dual 
connect by level <= 7; 

Если вы хотите, чтобы вручную ввести дату вместо SYSDATE, вы можете, например, сделать это:

select trunc(to_date('10-Feb-2017','dd-Mon-yyyy'),'IW') + level - 1 
from dual 
connect by level <= 7; 

Если вы хотите применить это на более чем один день кросс использование присоединиться:

with t(dt) as (
    select to_date('23-Jan-2017','dd-Mon-yyyy') from dual union all 
    select to_date('01-Mar-2017','dd-Mon-yyyy') from dual 
) 
-- test data ends here 

select dt, trunc(dt,'IW') + n dt2 
from t cross join (
     select level - 1 n 
     from dual 
     connect by level <= 7 
); 
+0

, когда я использую дату, отличную от sysdate, ее не работает –

+0

не из таблицы i, введенной вручную, выберите trunc ('04 - Apr-2017 ',' W ') + уровень от двойного подключиться уровнем <= 7; –

+0

* * не работает * - вы имеете в виду, что получили сообщение об ошибке? пожалуйста, напишите здесь дату? Вы использовали функцию to_date? – GurV

Смежные вопросы