sql >> Database >  >> RDS >> Oracle

Hoe u weekgewijze gegevens in Oracle kunt krijgen

Het hangt ervan af waar je naar op zoek bent. Als je na de komende 7 dagen bent, dan:

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

Als je van maandag tot zondag wilt zeggen, gebruik dan de next_day functie:

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

Beide waar :my_date is de datum waarop je overlijdt.

Als je geen datum maar een string doorgeeft, wordt de eerste, met behulp van de to_date functie:

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

en je zou iets soortgelijks kunnen doen voor de tweede. Als u to_date . moet gebruiken dan date_col zou een functiegebaseerde index moeten hebben op to_date(date_col,'dd/mm/yyyy') of als je het anders gaat converteren dan op die manier.



  1. Hoe kan ik de nieuwe object-id krijgen die is gegenereerd door de DB-reeks?

  2. Oracle:Ik heb een gedeeltelijke outer join nodig. Kijk naar de afbeelding

  3. Inhoud wijzigen op basis van een vervolgkeuzelijst uit een mysql-database

  4. Mysql - optimalisatie - meerdere group_concat &joins met behulp van hebben