(Oracle) Selecionar todas as datas entre um período! [RESOLVIDO]

E aí, galerinha do GUJ. Tudo bem com vocês?
Tô com uma puta dúvida:

Por exemplo. Do período de 01/02/2012 a 15/02/2012, como eu faria para selecionar quais os dias que estão aí? [No caso, selecionaria 01/02/2012, 02/02/2012, 03/02/2012…]
Ou, até melhor, como faria para selecionar as segundas-feiras desse período? Ou as terças-feiras, quartas-feiras…?

Entenderam a ideia?
Quem puder ajudar, ficaria grato!

Um grande abraço a todos, fiquem com Deus!

Nicolas,

No oracle se faz assim :

select to_char(to_date('01/02/2012', 'dd/mm/yyyy'), 'Day') as dia01, to_char(to_date('01/02/2012', 'dd/mm/yyyy'), 'D') as dia_x, to_char(to_date('15/02/2012', 'dd/mm/yyyy'), 'Day') as dia_15, next_day(to_date('15/02/2012', 'dd/mm/yyyy'), 'Quarta-Feira ') as Prox_Quarta_depois_dia15 from dual

Resultado

DIA01 DIA_X DIA_15 PROX_QUARTA_DEPOIS_DIA15


Quarta-Feira 4 Quarta-Feira 22/2/2012

[quote=Aleksandro]Nicolas,

No oracle se faz assim :

select to_char(to_date('01/02/2012', 'dd/mm/yyyy'), 'Day') as dia01, to_char(to_date('01/02/2012', 'dd/mm/yyyy'), 'D') as dia_x, to_char(to_date('15/02/2012', 'dd/mm/yyyy'), 'Day') as dia_15, next_day(to_date('15/02/2012', 'dd/mm/yyyy'), 'Quarta-Feira ') as Prox_Quarta_depois_dia15 from dual

Resultado

DIA01 DIA_X DIA_15 PROX_QUARTA_DEPOIS_DIA15


Quarta-Feira 4 Quarta-Feira 22/2/2012[/quote]

Opa, Aleksandro, beleza?
Valeu pela dica, gostei dessa função next_day!
Agora, minha dúvida é a seguinte: fazer uma iteração do dia 01 ao dia 15/02 e procurar TODAS as quartas-feiras nesse período. Tem como? Você sabe se tem?
Valeu, abraço!

Para gerar todas as datas no intervalo você pode utilizar:

    select to_date('01/02/2012','DD/MM/YYYY') - 1 + level dia
    from
        dual
    connect by level <= ((to_date('15/02/2012','DD/MM/YYYY')  - to_date('01/02/2012','DD/MM/YYYY') + 1 ))

Uma forma preguiçosa de filtrar todas as quartas-feiras seria:

  select 
    DIA, TO_CHAR(DIA, 'DAY, MONTH - YYYY')
from
(<query_de_cima>)
where
    to_char(dia,'D') = '4'  --// quarta-feira é 4 na américa, isso pode variar.

Possivelmente dá para montar uma query diretamente com o next_day e gerar apenas as quartas-feiras… mas não consegui pensar nisso agora.

Aproveitando a query que AbelBueno segue:

select distinct next_day(to_date('01/02/2012','DD/MM/YYYY') - 1 + level, 'Quarta-Feira ') from dual connect by level < ((last_day(to_date('01/02/2012','DD/MM/YYYY')) - to_date('01/02/2012','DD/MM/YYYY'))) order by 1 asc

Resultado

NEXT_DAY(TO_DATE(‘01/02/2012’,

8/2/2012
15/2/2012
22/2/2012
29/2/2012

Valeu pelas respostas, pessoal. Consegui resolver meu problema!!
Grande abraço a todos!