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