sql >> Databasteknik >  >> RDS >> Oracle

Hur man får veckovis data i Oracle

Det beror på vad du är ute efter. Om du är ute efter de kommande 7 dagarna då:

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

Om du vill säga måndag till söndag, använd next_day funktion:

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

Båda där :my_date är det datum du gick in.

Om du inte skickar in ett datum utan en sträng så blir den första, med 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')

och du kan göra något liknande för den andra. Om du måste använda to_date sedan date_col bör ha ett funktionsbaserat index den to_date(date_col,'dd/mm/yyyy') eller om du ska konvertera det på ett annat sätt då på det sättet.



  1. Kan kardinalitet skilja sig åt för dubbletter av index i mysql?

  2. Få primärnycklar påverkade efter att ha valt, uppdaterat eller infogat endast med SQL?

  3. Varför många tabeller ORACLE standard 12c?

  4. Hur man får gårdagens datum i MySQL