Я создаю сводную таблицу как часть хранимой процедуры, и у меня есть два столбца. В первом столбце должно отображаться начало, а во втором столбце — конец диапазона дат, основанного на входном параметре, представляющем собой число, обозначающее квартал. Мне удалось извлечь из AskTom следующее, но у меня есть несколько вопросов.
Open C1 FOR
SELECT ( SELECT TRUNC (SYSDATE, 'Q')-1+1 AS 'StartOf' FROM DUAL ),
SELECT ( SELECT TRUNC(ADD_MONTHS (SYSDATE, +3), 'Q')-2 AS 'EndOf' FROM DUAL )
FROM DUAL;
Вопрос 1. Будет ли математика здесь учитывать високосные годы... Я не думаю, что будет, но я не уверен, как с этим справиться.
Вопрос 2. Как добавить входной параметр inQuarter в качестве конкретного квартала? Я пытался поставить его вместо sysdate, но мне нужно сначала переформатировать его в дату, я думаю?
Заранее спасибо за любые ответы.
inQuarter
? Вы говорите, что это число, обозначающее квартал, которое, по-видимому, означает для вас что-то очень конкретное, но мне непонятно, что это значит. Вы имеете в виду, что вы передаете число, подобное 1, которое должно интерпретироваться как первый квартал текущего года? Или что у вас есть число вроде 200403, которое должно интерпретироваться как 3-й квартал 2004 года? Или что-то другое? - person Justin Cave   schedule 13.03.2012