2015-02-26 2 views
0

Мне нужно работать с данными, полученными и сгруппированными на еженедельной основе (неделя ИСО), и моя БД структурирована ежедневно (поле: ДАТА). Мне нужно записать код, который выполняется, так что, учитывая текущую дату, он вычисляет неделю и данные извлечения за предыдущие 3 недели.Извлечение данных на основе текущей недели ИД и обратной связи

Итак, я пишу в ИНЕКЕ:

TO_DATE(TO_CHAR(DATE, 'YYYYWW')) BETWEEN TO_DATE(TO_CHAR(TO_DATE(running_date, 'YYYYMMDD'), 'YYYYWW'), 'YYYYWW')-3 AND TO_DATE(TO_CHAR(TO_DATE(running_date, 'YYYYMMDD'), 'YYYYWW'), 'YYYYWW') 

Это не похоже на работу, хотя. Любые предложения по устранению проблемы?

Большое спасибо!

ответ

0

Вы должны вычесть 21 день, когда хотите вернуться в предыдущие 3 недели. Если вы вычтите 3, вы получите только последние три дня.

0

Вам нужно использовать «IW», а не «WW» в качестве маски формата для недели ISO. Из документов Oracle:

IW = неделя года (1-52 или 1-53) на основе стандарта ISO.

WW = Неделя года (1-53), где неделя 1 начинается в первый день года, а продолжается до седьмого дня года.

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