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.

Daran sehen Sie, daß der 18.06.1961 150 Tage vor dem 15.11.1961 liegt. Vorsicht mit<br />

den Ergebnissen einer DATE-Subtraktion: Wenn irgendwelche Tageszeitkomponenten<br />

daran beteiligt sind, bekommen Sie eine Bruchzahl als Ergebnis. Schauen Sie sich noch<br />

einmal dieselbe Subtraktion an, doch diesmal mit ein paar sorgfältig ausgewählten Uhrzeitbestandteilen:<br />

BEGIN<br />

DBMS_OUTPUT.PUT_LINE (<br />

TO_DATE('15-Nov-1961 12:01 am','dd-Mon-yyyy hh:mi am')<br />

- TO_DATE('18-Jun-1961 11:59 pm','dd-Mon-yyyy hh:mi am')<br />

);<br />

END;<br />

Die Ausgabe lautet:<br />

149.001388888888888888888888888888888889<br />

Wenn Sie sich dafür interessieren, wie viele Kalendertage zwischen den beiden im Beispiel<br />

angegebenen Daten liegen, dann ist dieses Ergebnis nicht korrekt. Es ist jedoch korrekt,<br />

wenn Sie den Standpunkt einnehmen, daß Sie die Anzahl der 24-St<strong>und</strong>en-<br />

Zeiträume zwischen den beiden DATE-Werten wissen möchten. Aber die meisten interessieren<br />

sich lediglich dafür, daß die beiden Daten um 150 Tage auseinanderliegen, <strong>und</strong><br />

nicht dafür, daß der eine DATE-Wert um 149,00139 24-St<strong>und</strong>en-Zeiträume vor dem<br />

anderen liegt. Sie erhalten korrekte Ergebnisse, wenn Sie die Funktion TRUNC auf jeden<br />

der beiden <strong>Datumswerte</strong> anwenden:<br />

BEGIN<br />

DBMS_OUTPUT.PUT_LINE (<br />

TRUNC(TO_DATE('15-Nov-1961 12:01 am','dd-Mon-yyyy hh:mi am'))<br />

- TRUNC(TO_DATE('18-Jun-1961 11:59 pm','dd-Mon-yyyy hh:mi am'))<br />

);<br />

END;<br />

Die Ausgabe lautet:<br />

150<br />

TRUNC tilgt Tageszeit-Komponenten aus den beiden DATEs, so daß das Ergebnis der<br />

Subtraktion dasselbe wie im ersten Beispiel in diesem Abschntt ist, also die Anzahl der<br />

Kalendertage zwischen den beiden Daten. TRUNC ist im Zusammenhang mit DATEs<br />

eine sehr nützliche Funktion <strong>und</strong> wird weiter unten im Abschnitt »Datums-/Uhrzeit-<br />

Funktionen« genauer erklärt.<br />

Das Ergebnis einer Subtraktion eines DATEs von einem anderen ist eine<br />

NUMBER. Das Ergebnis einer Subtraktion eines TIMESTAMP-Typs von<br />

einem anderen ist ein INTERVAL DAY TO SECOND.<br />

316 | 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!