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.

INTERVAL-Variablen deklarieren<br />

Verglichen mit anderen Variablen in PL/SQL ist die Syntax zur Deklaration von INTER-<br />

VAL-Variablen ein wenig ungewöhnlich. Sie haben nicht nur Typnamen, die aus mehreren<br />

Wörtern bestehen, sondern können in einem Fall sogar zwei Genauigkeiten statt<br />

einer angeben:<br />

oder:<br />

var_name INTERVAL YEAR [(jahr_genauigkeit)] TO MONTH<br />

var_name INTERVAL DAY [(tag_genauigkeit)] TO SECOND [(sek bruchteil_genau)]<br />

Hierbei ist:<br />

var_name<br />

der Name der zu deklarierenden INTERVAL-Variablen,<br />

jahr_genauigkeit<br />

die Anzahl Ziffern (von 0 bis 4), die Sie für einen Jahreswert gestatten möchten,<br />

Standard ist 2,<br />

tag_genauigkeit<br />

die Anzahl Ziffern (von 0 bis 9), die Sie für einen Tageswert gestatten möchten,<br />

Standard ist 2,<br />

sek_bruchteil_genau<br />

die Anzahl Ziffern (von 0 bis 9), die Sie für einen Sek<strong>und</strong>enbruchteil gestatten<br />

möchten (also die Genauigkeit der Sek<strong>und</strong>enbruchteilangabe). Der Standard ist 6.<br />

Es liegt in der Natur der Zeiträume, daß Sie sich nur in Sonderfällen um ihre Genauigkeit<br />

zu kümmern brauchen. INTERVAL YEAR TO MONTH-Werte sind immer so normalisiert,<br />

daß die Anzahl der Monate zwischen 0 <strong>und</strong> 11 liegt. In Oracle können Sie keinen<br />

Monat größer als 11 angeben: Einen Zeitraum, der sich über ein Jahr <strong>und</strong> 13 Monate<br />

erstreckt, müssen Sie als 2 Jahre <strong>und</strong> 1 Monat ausdrücken. Die jahr_genauigkeit legt fest,<br />

wie groß der Zeitraum höchstens sein darf. Ebenso legt tag_genauigkeit in INTERVAL<br />

DAY TO SECOND die Maximalgröße dieses Zeitraums fest.<br />

Für eine Variable des Typs INTERVAL DAY TO SECOND brauchen Sie aus denselben<br />

Gründen keine Genauigkeit für St<strong>und</strong>e, Minute <strong>und</strong> Sek<strong>und</strong>e anzugeben, aus denen Sie<br />

auch für INTERVAL YEAR TO MONTH keine Genauigkeit für den Monat angeben. Die<br />

Zeiträume sind immer so normalisiert, daß die Werte für St<strong>und</strong>e, Minute <strong>und</strong> Sek<strong>und</strong>e<br />

im normalen Wertebereich liegen: 0 bis 23 für St<strong>und</strong>en, 0 bis 59 für Minuten <strong>und</strong> 0 bis<br />

59 für Sek<strong>und</strong>en, ausgenommen Sek<strong>und</strong>enbruchteile.<br />

Die Genauigkeit für Sek<strong>und</strong>enbruchteile (sek_bruchteil_genau) ist notwendig, weil<br />

INTERVAL DAY TO SECOND-Werte Zeiträume bis auf den Sek<strong>und</strong>enbruchteil genau<br />

auflösen können. Da andererseits INTERVAL YEAR TO MONTH-Werte keine Monatsbruchteile<br />

aufnehmen, ist für den Monat keine Angabe der Genauigkeit erforderlich.<br />

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