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.

Der folgende Aufruf an TO_DATE gibt ein Datum zurück, weil das »fm« am Anfang der<br />

Formatmaske den Füllmodus für den gesamten String einschaltet. Dadurch wird 1 zu 01<br />

<strong>und</strong> 94 zu 1994:<br />

TO_DATE ('07-1-94', 'FXfmDD-FXMM-FXYYYY')<br />

Sowohl FM als auch FX dürfen in demselben Format-String mehrfach vorkommen, um<br />

einen oder beide Modifikatoren ein- oder auszuschalten.<br />

Das Element RR<br />

Anläßlich des Jahrtausendwechsels ist das Interesse für vierziffrige Jahresdarstellungen<br />

rasant gestiegen. Plötzlich wurden die Menschen sich der Mehrdeutigkeit bewußt, die den<br />

verbreiteten zweiziffrigen Jahreszahlen innewohnt. Ist mit 1. Januar 45 das Jahr 1945 oder<br />

2045 gemeint? Doch trotz dieser neuen Erkenntnis sind alte Gewohnheiten zäh <strong>und</strong> bestehende<br />

Systeme schwer zu ändern. Daher kann es sein, daß Sie nach wie vor den Benutzern<br />

auch die Eingabe von Jahreszahlen mit zwei statt vier Ziffern ermöglichen müssen.<br />

Die Jahresangabe mit zwei Ziffern ist besonders problematisch, wenn ein Jahrh<strong>und</strong>ertoder<br />

Jahrtausendwechsel bevorsteht. Da sich das Formatelement YY standardmäßig auf<br />

das gegenwärtige Jahrh<strong>und</strong>ert bezieht, gaben die Benutzer im November 1999 mit 1/1/1<br />

oder 1-JAN-1 in Wirklichkeit den 1. Januar 1901 in die Datenbank ein <strong>und</strong> nicht den 1.<br />

Januar 2001.<br />

Was soll ein Datenbankmanager da machen? Eine Lösung wäre es, überall die Trigger-<br />

Logik so zu ändern, daß immer das nächste Jahrh<strong>und</strong>ert vorausgesetzt wird, wenn der<br />

Benutzer eine Jahreszahl kleiner als zehn (oder wo auch immer Sie die Grenze ziehen<br />

möchten) eingibt. Das würde zwar funktionieren, ist aber nicht wünschenswert.<br />

Zum Glück kennt Oracle ein Formatelement, das dieses Problem behebt: RR. Mit RR<br />

konnten Sie vor dem Jahr 2000 Daten aus dem 21. Jahrh<strong>und</strong>ert <strong>und</strong> können nach dem<br />

Jahr 2000 Daten aus dem 20. Jahrh<strong>und</strong>ert (z.B. Geburtsdaten von K<strong>und</strong>en <strong>und</strong> Angestellten)<br />

eingeben. RR funktioniert folgendermaßen:<br />

Wir benutzen hier den Begriff »Jahrh<strong>und</strong>ert« umgangssprachlich: Das 20.<br />

Jahrh<strong>und</strong>ert von RR setzt sich aus den Jahren 1900 bis 1999 <strong>und</strong> das 21.<br />

Jahrh<strong>und</strong>ert aus den Jahren 2000 bis 2099 zusammen. Wir wissen, daß<br />

diese Definition eines Jahrh<strong>und</strong>erts nicht ganz richtig ist, aber sie erleichtert<br />

die Erklärung von RR.<br />

Wenn das aktuelle Jahr zur ersten Hälfte des Jahrh<strong>und</strong>erts gehört (die Jahre 0 bis 49),<br />

dann gilt:<br />

• Wenn das Eingabedatum in die erste Hälfte des Jahrh<strong>und</strong>erts fällt (die Jahre 0 bis<br />

49), gibt RR das aktuelle Jahrh<strong>und</strong>ert zurück.<br />

• Wenn das Eingabedatum in die zweite Hälfte des Jahrh<strong>und</strong>erts fällt (die Jahre 50 bis<br />

99), gibt RR das vorige Jahrh<strong>und</strong>ert zurück.<br />

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