In Oracle kann aus einer Kalenderwoche (KW) einfach das Startdatum und Enddatum berechnet werden:
SELECT TRUNC(TO_DATE('25112009', 'DDMMYYYY'), 'IYYY') + (26 - 1) * 7 AS date_from, TRUNC(TO_DATE('25112009', 'DDMMYYYY'), 'IYYY') + (26 - 1) * 7 + 6 AS date_to FROM sys.dual;
Das Beispiel gilt für die Woche 26/2009. Für andere Kalenderwochen ändern Sie bitte beide Werte "26" im SQL Statement in Ihre gewünschte Woche um. Das Jahr (im Beispiel "2009") ggf. ebenfalls angepasst werden.
Das folgende Beispiel zeigt Ihnen den Aufbau der Query:
SELECT TRUNC(TO_DATE('2511[Jahr]', 'DDMMYYYY'), 'IYYY') + ([KW] - 1) * 7 AS date_from, TRUNC(TO_DATE('2511[Jahr]', 'DDMMYYYY'), 'IYYY') + ([KW] - 1) * 7 + 6 AS date_to FROM sys.dual;
Dabei ist das Datum im SQL Befehl (hier der 25.11.) unwichtig.