Oracle Select: Erzeugen eines Zeitfolge mit connect


Hatte gerade das Problem, in SQL eine Zeitfolge (also n Perdioden a xx Minuten) der Art:

08.02.2012 00:00:00 bis 08.02.2012 00:30:00
08.02.2012 00:30:00 bis 08.02.2012 01:00:00
08.02.2012 01:00:00 bis 08.02.2012 01:30:00

konfigurierbar in einer SQL Query zu brauchen. Mit Oracle Bordmitteln
geht das wie folgt:


select
  -- Berechne Ueberwachungsperioden all n Minuten)
  startDatum + ((level-1) / tagTeile) as periode_begin,
  startDatum + ( level    / tagTeile) as periode_ende
from
  (select trunc(sysdate) - 1 as startDatum, -- Ab Datum "Gestern"
          48 as tagTeile          -- alle 30 Minuten (1 Tag / 48)  
     from dual)
where
  (startDatum+(level / tagTeile)) < sysdate -- Bis zur aktuellen Uhrzeit
connect
     by level<= (sysdate - startDatum) * tagTeile -- genug rows
order by 1 desc    
     ;

Bin kein Experte in Oracle, finde ich aber ganz nützlich.

Beliebte Posts aus diesem Blog

Powershell snippet to send messages to telegram

using the birt runtime with spring boot and gradle to generate PDF from a Report Design File