[Oracle] Vorberechnete Datumstabelle zum effizienten Umgang mit Datumswerten

Thomas Darimont

Erfahrenes Mitglied
Hallo,

im Datawarehouse Umfeld hat man es immer mit sehr großen Datenmengen zu tun, was eine effiziente Verarbeitungsmöglichkeit auf Datenbankseite unabdingbar macht.

Hier mal eine Möglichkeit wie man sich relativ teure Datumsfunktionen sparen kann in dem man eine vorberechnete Datumstabelle aufbaut und diese dann in den jeweiligen Abfragen einfach dazu joint und entsprechende Vergleiche durchführt.

(Als sqlplus Skript)
SQL:
var startDate varchar2(10);
var endDate varchar2(10);

exec :startDate := '01.01.2002';
exec :endDate := '31.12.2003';

--create table timebasedata as
select 
TO_DATE(:startDate,'DD.MM.YYYY') + rownum as datedate 
-- datum als int 20070328
-- datum als int 200703
-- erster des monats   
-- kalendarwoche 1 .... 52
-- quartal 1 ... 4
-- monat 1 .... 12
-- monat als Abkürzung
-- jahr 
-- tag
-- wochentag (1 ...  montag / 2 ... dienstag ..) etc.
-- ...usw.
from dual connect by TO_DATE(:startDate,'DD.MM.YYYY') + rownum <= TO_DATE(:endDate,'DD.MM.YYYY');

Gruß Tom
 

Neue Beiträge

Zurück