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