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

Como obter dados semanais no Oracle


Depende do que você está procurando. Se você estiver depois dos próximos 7 dias, então:
select * 
  from my_table
 where date_col between :my_date and :my_date + 7

Se você quiser dizer de segunda a domingo, use o next_day função:
select *
  from my_table
 where date_col between next_day(:my_date, 'Monday') - 7 
                    and next_day(:my_date, 'Monday')

Ambos onde :my_date é a data de sua passagem.

Se você não estiver passando uma data, mas uma string, a primeira se tornará, usando o to_date função:
select *
  from my_table
 where date_col between to_date(:my_date,'dd/mm/yyy') + 7
                    and to_date(:my_date,'dd/mm/yyy')

e você poderia fazer algo semelhante para o segundo. Se você tiver que usar to_date então date_col deve ter um índice baseado em função em to_date(date_col,'dd/mm/yyyy') ou se você for convertê-lo de maneira diferente dessa maneira.