Ir para o conteúdo principal

Retorna datas de um intervalo de dias

SQL: 

select x.data,
       initcap(to_char(x.data,'DAY')) dia_semana,
       case when to_char(x.data, 'd') in (1,7) then 'Fim de semana' else 'Dia útil' end legenda
  from (select data_inicial + level - 1 data
          from (select to_date('12/07/2019', 'DD/MM/YYYY') data_inicial from dual)
        connect by level <= sysdate - data_inicial + 1) x
 order by x.data

Retorno:

|    DATA    |   DIA_SEMANA  |    LEGENDA    |
--------------------------------------------
| 12/07/2019 | Sexta-Feira   | Dia útil      |
| 13/07/2019 | Sábado        | Fim de semana |
| 14/07/2019 | Domingo       | Fim de semana |
| 15/07/2019 | Segunda-Feira | Dia útil      |
| 16/07/2019 | Terça-Feira   | Dia útil      |
| 17/07/2019 | Quarta-Feira  | Dia útil      |