Oracle
 sql >> Database >  >> RDS >> Oracle

Come ottenere dati settimanali in Oracle

Dipende da cosa cerchi. Se sono trascorsi i prossimi 7 giorni, allora:

select * 
  from my_table
 where date_col between :my_date and :my_date + 7

Se vuoi dire dal lunedì alla domenica, usa il next_day funzione:

select *
  from my_table
 where date_col between next_day(:my_date, 'Monday') - 7 
                    and next_day(:my_date, 'Monday')

Entrambi dove :my_date è la data del tuo trapasso.

Se non stai passando una data ma una stringa, la prima diventerebbe, usando to_date funzione:

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 potresti fare qualcosa di simile per il secondo. Se devi usare to_date quindi date_col dovrebbe avere un indice basato su funzioni il to_date(date_col,'dd/mm/yyyy') o se hai intenzione di convertirlo in modo diverso, allora in questo modo.