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.

das auf der Website von O’Reilly zur Verfügung steht. Wenn Sie ein Datum ohne Uhrzeit<br />

eingeben (da für viele Anwendungen die Uhrzeit keine Rolle spielt, können Sie diese bei<br />

PL/SQL auch weglassen), ist der Uhrzeitwert standardmäßig Mitternacht (12:00:00 AM).<br />

Oracle kann beinahe jedes Datums- <strong>und</strong> Uhrzeitformat interpretieren, das Sie ihm vorwerfen.<br />

Der Schlüssel für diese Flexibilität ist das Datumsformatmodell: ein String von<br />

Sonderzeichen, die das Format eines Datums für Oracle definieren. Da diese Zeichen die<br />

Gr<strong>und</strong>lage für die Datumskonvertierung bilden, reden wir als erstes über die Formatmodelle<br />

<strong>und</strong> zeigen danach, wie Sie diese einsetzen, um Daten in Datums- <strong>und</strong> Uhrzeit-<br />

Variablen von PL/SQL hinein- <strong>und</strong> wieder herauszubekommen.<br />

Datumsformatmodelle<br />

Bis zur Version 6 des Oracle RDBMS hatte ein Datum als Zeichenwert das Standardformat<br />

TT-MON-JJ, was viele Entwickler <strong>und</strong> Benutzer mit Bestürzung erfüllte. Dieses Format<br />

ist zwar in vielen Teilen der Welt üblich, aber nicht in den USA.<br />

Seit Oracle7 können Datenbankadministratoren ein eigenes Standarddatumsformat<br />

angeben (das bei der Initialisierung oder <strong>beim</strong> Hochfahren der RDBMS-Instanz in Kraft<br />

tritt). Dazu wird der Parameter NLS_DATE_FORMAT wie folgt eingestellt:<br />

NLS_DATE_FORMAT = 'MM/DD/YYYY'<br />

Das Standardformat wird also implizit mit einem anderen Initialisierungsparameter,<br />

nämlich NLS_TERRITORY, gesetzt. Wenn Sie einen Wert für NLS_TERRITORY angeben,<br />

geben Sie damit Konventionen für das Format <strong>und</strong> die Sprache des Datums, die<br />

Zahlenformate, die Währungssymbole <strong>und</strong> den Tag des Wochenbeginns vor.<br />

Sie können auch auf der Sitzungsebene ein Datumsformat angeben. Das ist praktisch,<br />

wenn Ihre speziellen Bedürfnisse sich von denen der meisten Datenbanknutzer unterscheiden.<br />

Mit dem Befehl ALTER SESSION richten Sie ein Standarddatumsformat auf<br />

der Ebene der Sitzung ein. Das folgende Beispiel funktioniert ab Oracle8i <strong>und</strong> gibt<br />

MM/DD/YYYY als Standarddatumsformat vor:<br />

BEGIN<br />

EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_DATE_FORMAT=''MM/DD/YYYY''';<br />

END;<br />

Um zu schauen, welches Standarddatumsformat für Ihre Sitzung zu einem gegebenen<br />

Zeitpunkt gilt, können Sie die Data Dictionary-View NLS_SESSION_PARAMETERS wie<br />

folgt abfragen:<br />

SELECT value<br />

FROM nls_session_parameters<br />

WHERE parameter='NLS_DATE_FORMAT';<br />

Sowohl die Entwickler als auch die Benutzer müssen das Standarddatumsformat kennen,<br />

wenn sie mit <strong>Datumswerte</strong>n arbeiten. In den nachfolgenden Abschnitten »Strings in<br />

<strong>Datumswerte</strong> konvertieren« <strong>und</strong> »Konvertierung von Daten in Strings« werden Sie erfah-<br />

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