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

Oracle BI:Vælg alle poster fra sidste uge

Det er muligt at bestemme de ønskede datoer ved hjælp af kombinationer af næste_dag og almindelig datoregning. Nedenstående kode burde være ret tæt på, men den er utestet og fejler sandsynligvis på en eller anden hjørnekasse, men du får i det mindste den generelle idé :)

where resolved_date >= next_day( trunc(sysdate) - interval '14' day, 'SUN')
  and resolved_date <  next_day( trunc(sysdate) - interval '7'  day, 'SUN')

trunc(sysdate) afkort datoen til dag; 2011-04-19 23:32:34 bliver 2011-04-19 00:00:00, dvs. fjernelse af tidskomponenten.next_day(sysdate, 'SUN') vender tilbage næste søndag. Hvis sysdate tilfældigvis er en søndag, returneres den næste søndag.
Vigtigt :Dagens navne skal være på samme sprog som din session.
interval ting er bare en standard måde at tilføje/fratrække forskellige tidsenheder fra en dato.

Hvis man sætter det hele sammen, ville logikken for den 19. april 2011 være:

  1. Truncate sysdate => 2011-04-19 00:00:00
  2. træk fra 14 dage => 2011-04-05 00:00:00
  3. Find den næste søndag => 2011-04-10 00:00:00

...og

  1. Truncate sysdate => 2011-04-19 00:00:00
  2. træk fra 7 dage => 2011-04-12 00:00:00
  3. Find den næste søndag => 2011-04-17 00:00:00

..resulterer i følgende forespørgsel:

 where resolved_date >= timestamp '2011-04-10 00:00:00'
   and resolved_date <  timestamp '2011-04-17 00:00:00'

Alle resolved_dates, der skete på eller efter det første sekund af den 10. men før det første sekund af den 17. ville blive inkluderet. Bemærk at >= og < svarer ikke til between .

En note om ydeevne:Jeg vil sikre mig, at Oracle korrekt estimerer datointervallet til at være 7 dage, og at den korrekte joinordre/metode bruges. Hvis du forventer, at forespørgslen kører i et stykke tid, kan du tillade dig at beregne datoerne i applikationen og levere dem som datobogstaver i stedet for at beregne dem med det samme, som jeg gjorde ovenfor.



  1. Laravel:Hvordan gemmer jeg data i json-format i databasen?

  2. Hvordan kopierer jeg data fra en tabel til en anden i postgres ved hjælp af kopieringskommandoen

  3. Letvægts WordPress-installation:Sådan installeres WordPress med SQLite

  4. Sætte en * (stjerne) foran en fuldtekstsøgning i MySQL