Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So erhalten Sie wochenweise Daten in Oracle

Es kommt darauf an, worauf du aus bist. Wenn die nächsten 7 Tage vorbei sind, dann:

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

Wenn Sie Montag bis Sonntag sagen möchten, verwenden Sie den next_day Funktion:

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

Beide mit :my_date ist das Datum Ihres Hinscheidens.

Wenn Sie kein Datum, sondern eine Zeichenkette übergeben, wird die erste mit to_date Funktion:

select *
  from my_table
 where date_col between to_date(:my_date,'dd/mm/yyy') + 7
                    and to_date(:my_date,'dd/mm/yyy')

und Sie könnten etwas Ähnliches für die zweite tun. Wenn Sie to_date verwenden müssen dann date_col sollte einen funktionsbasierten Index haben am to_date(date_col,'dd/mm/yyyy') oder wenn Sie es anders als auf diese Weise konvertieren werden.