Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

conectado por meses


A melhor maneira pode ser separar o gerador de linhas da função de data. Portanto, gere uma lista de 0 a 6 e calcule os meses a partir disso. Se você quiser passar os meses, faça isso na cláusula with
with my_counter as (
  Select Level-1 as id 
  from dual 
  connect by Level <= 7
) 
select to_char(add_months(sysdate, id),'YYYYMM') from my_counter

O exemplo abaixo permitirá que você insira as datas necessárias para calcular a diferença.
with my_counter as (
  Select Level-1 as id 
  from dual 
  connect by level <= months_between(add_months(trunc(sysdate,'MM'), 6), 
      trunc(sysdate,'MM')) + 1
) 
select to_char(add_months(trunc(sysdate, 'MM'), id),'YYYYMM') from my_counter