09.05.2014 Aufrufe

KAPITEL 10 Datumswerte und Zeitstempel - beim O'Reilly Verlag

KAPITEL 10 Datumswerte und Zeitstempel - beim O'Reilly Verlag

KAPITEL 10 Datumswerte und Zeitstempel - beim O'Reilly Verlag

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Zeiträume zu <strong>Datumswerte</strong>n addieren oder davon subtrahieren<br />

Das gr<strong>und</strong>sätzliche Konzept, einen Zeitraum zu einem Datums-/Uhrzeitwert zu addieren<br />

oder ihn davon zu subtrahieren, ist in Oracle9i das gleiche wie in früheren Releases. Mit<br />

Oracle8i können Sie folgendes tun:<br />

hire_date + 1;<br />

Mit Oracle9i können Sie dasselbe tun, aber auch dieses:<br />

hire_date + INTERVAL '1' DAY;<br />

Hier ist nichts neu mit Ausnahme des Datentyps INTERVAL DAY TO SECOND. Der<br />

Ausdruck INTERVAL ‘1’ DAY ergibt einen Wert vom Typ INTERVAL DAY TO<br />

SECOND. Da wir nur eine Anzahl Tage angegeben haben, sind die Werte für St<strong>und</strong>en,<br />

Minuten <strong>und</strong> Sek<strong>und</strong>en standardmäßig null. Genaueres über die Schreibweise der hier<br />

verwendeten Arten von Zeiträume können Sie weiter oben in diesem Kapitel unter<br />

»Wertausdrücke mit Zeiträumen« nachlesen.<br />

Das folgende Codestück enthält noch weitere Beispiele für Arithmetik mit Zeiträumen in<br />

Oracle9i:<br />

DECLARE<br />

hire_date TIMESTAMP WITH TIME ZONE;<br />

a INTERVAL YEAR TO MONTH;<br />

b INTERVAL DAY TO SECOND;<br />

BEGIN<br />

hire_date := TIMESTAMP '2000-09-01 00:00:00 -5:00';<br />

DBMS_OUTPUT.PUT_LINE(hire_date);<br />

a := INTERVAL '1-2' YEAR TO MONTH;<br />

b := INTERVAL '3 4:5:6.7' DAY TO SECOND;<br />

--Addiert Jahre <strong>und</strong> Monate.<br />

hire_date := hire_date + a;<br />

DBMS_OUTPUT.PUT_LINE(hire_date);<br />

--Addiert Tage, St<strong>und</strong>en, Minuten <strong>und</strong> Sek<strong>und</strong>en.<br />

hire_date := hire_date + b;<br />

DBMS_OUTPUT.PUT_LINE(hire_date);<br />

END;<br />

Die Ausgabe lautet:<br />

01-SEP-00 12.00.00.000000 AM -05:00<br />

01-NOV-01 12.00.00.000000 AM -05:00<br />

04-NOV-01 04.05.06.700000 AM -05:00<br />

Den Zeitraum zwischen zwei <strong>Datumswerte</strong>n berechnen<br />

Wenn Sie den Zeitraum zwischen zwei DATE-Werten berechnen, ist das Ergebnis die<br />

Anzahl der 24-St<strong>und</strong>en-Zeiträume (nicht der Tage) zwischen den beiden Werten. War<br />

318 | Kapitel <strong>10</strong>: <strong>Datumswerte</strong> <strong>und</strong> <strong>Zeitstempel</strong>

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!