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