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

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Strings in <strong>Datumswerte</strong> konvertieren<br />

Wenn Sie mit <strong>Datumswerte</strong>n arbeiten, müssen Sie zuerst das Datum (<strong>und</strong> die Uhrzeit) in<br />

die Datums- <strong>und</strong> Uhrzeit-Variablen von PL/SQL bekommen. Dazu konvertieren Sie die<br />

Werte aus dem String-Format in das interne Format von Oracle. Solche Konvertierungen<br />

können Sie implizit vornehmen, indem Sie einen String einer Datums-/Uhrzeit-Variablen<br />

zuweisen, oder explizit, indem Sie eine Built-in-Konvertierungsfunktion von Oracle<br />

benutzen.<br />

Die implizite Konvertierung ist riskant, <strong>und</strong> wir raten davon ab. Im Folgenden sehen Sie<br />

ein Beispiel für eine implizite Konvertierung eines Strings in eine DATE-Variable:<br />

DECLARE<br />

birthdate DATE;<br />

BEGIN<br />

birthdate := '15-Nov-1961';<br />

END;<br />

Eine solche Konvertierung stützt sich auf den Wert von NLS_DATE_FORMAT <strong>und</strong><br />

funktioniert so lange, bis Ihr DBA beschließt, diese Einstellung zu ändern. In demselben<br />

Moment geht all Ihr datumsbezogener Code den Bach herunter. Das kann auch geschehen,<br />

wenn Sie NLS_DATE_FORMAT auf der Sitzungsebene ändern.<br />

Anstatt sich auf implizite Konvertierungen <strong>und</strong> NLS_DATE_FORMAT zu verlassen, ist<br />

es viel sicherer, <strong>Datumswerte</strong> explizit mit einer der Built-in-Funktionen zu konvertieren.<br />

Diese Funktionen machen nicht nur im Code deutlich, daß hier eine Typkonvertierung<br />

vorliegt, sondern ermöglichen Ihnen auch die Angabe des genauen Datums- <strong>und</strong> Uhrzeitformats.<br />

In den nächsten Abschnitten werden Konvertierungen mit Built-in-Funktionen genauer<br />

beschrieben. Sie finden darin auch einen Abschnitt über ein neues Feature von Oracle9i,<br />

nämlich das <strong>Zeitstempel</strong>-Literal. Ein <strong>Zeitstempel</strong>-Literal ist ein ANSI/ISO-Standardtextformat,<br />

das für Datums- <strong>und</strong> Uhrzeitwerte eingesetzt wird. Es bietet Ihnen noch eine<br />

Möglichkeit mehr zur Konvertierung von Text in Datums- <strong>und</strong> Uhrzeitwerte.<br />

TO_DATE<br />

Die Funktion TO_DATE konvertiert einen String in einen echten DATE-Datentyp. Ihre<br />

Spezifikation ist überladen, um sowohl mit String- als auch mit Zahleneingabe arbeiten<br />

zu können:<br />

FUNCTION TO_DATE (string_in IN VARCHAR2<br />

[, format_maske IN VARCHAR2<br />

[, nls_sprache IN VARCHAR2 ]]<br />

)<br />

RETURN DATE;<br />

FUNCTION TO_DATE<br />

(number_in IN NUMBER<br />

Datums- <strong>und</strong> <strong>Zeitstempel</strong>-Konvertierungen | 289

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!