Datums- und Zeitausdrücke

Ein Datums-/Zeitausdruck wird - abhängig vom Kontext - in einen Wert des Typs DATE, INT, INTERVAL, TIME oder TIMESTAMP aufgelöst. Ein Datums-/Zeitausdruck muss eine oder mehrere der folgenden Komponenten enthalten:

Die nächste Tabelle fasst die Typen von Rechenoperationen zusammen, die in einem Datums-/Zeitausdruck gültig sind. Dabei ist zu beachten, dass eine TIME-Variable nicht in einem arithmetischen Ausdruck verwendet werden kann. Eine Erläuterung der Formatsymbole finden Sie in "Formatkennungen für Datum, Zeit und Zeitmarke".

Tabelle 1. Rechenoperationen in einem Datums-/Zeitausdruck
Typ von Operand 1 Operator Typ von Operand 2 Typ des Ergebnisses Kommentare
DATE - DATE INT INT ist eine Anzahl Tage.
DATE +/- NUMBER DATE NUMBER kann eine Variable, ein Literal oder ein numerischer Ausdruck sein und es wird angenommen, dass es sich um eine Anzahl Tage handelt.
NUMBER + DATE DATE NUMBER kann eine Variable, ein Literal oder ein numerischer Ausdruck sein und es wird angenommen, dass es sich um eine Anzahl Tage handelt.
TIMESTAMP - TIMESTAMP INTERVAL Siehe "INTERVAL-Variablen verwenden" weiter unten.
DATE - TIMESTAMP INTERVAL Siehe "INTERVAL-Variablen verwenden" weiter unten.
TIMESTAMP - DATE INTERVAL Siehe "INTERVAL-Variablen verwenden" weiter unten.
TIMESTAMP +/- INTERVAL TIMESTAMP  
INTERVAL + TIMESTAMP TIMESTAMP  
DATE +/- INTERVAL TIMESTAMP  
INTERVAL + DATE TIMESTAMP  
INTERVAL +/- INTERVAL INTERVAL INTERVAL-Werte müssen denselben Bereich abdecken (d. h. Monate oder Sekunden).
INTERVAL *// NUMBER INTERVAL Beispielsweise können Sie ein Intervall (INTERVAL) von drei Jahren und drei Monaten durch zwei teilen. Das Ergebnis wird auf ein Jahr und sieben Monate gekürzt.

INTERVAL-Variablen verwenden

Das schwierige Konzept ist hier der Typ INTERVAL. INTERVAL kommt nur zum Einsatz, wenn Ausdrücke entweder TIMESTAMP oder INTERVAL als einen der Operanden voraussetzen. Es gibt zwei Versionen des INTERVAL-Typs. Der eine speichert Monatsintervalle (Intervalle, die größer als ein Monat sind), der andere speichert Sekundenintervalle (Intervalle, die kleiner als ein Monat sind). Sie müssen ein Formatmuster angeben, wenn Sie eine INTERVAL-Variable definieren, und dieses Format muss EGL mitteilen, ob der INTERVAL-Wert ein Monats- oder Sekundenbereich ist.

Die folgenden Beispiele zeigen gültige Formate für einen Monatsbereich (INTERVAL):
diff01 INTERVAL("yyyy");
diff02 INTERVAL("MM");
diff03 INTERVAL("yyyyMM");
Die folgenden Beispiele zeigen gültige Formate für einen Sekundenbereich (INTERVAL):
diff04 INTERVAL ("ddhhmmssffff");
diff05 INTERVAL ("hhmmss");
diff06 INTERVAL ("ddhhmm");
diff07 INTERVAL ("ss");
Sie können die beiden Formate nicht kombinieren. Das heißt, die beiden folgenden Formate sind nicht gültig:
diff08 INTERVAL ("yyyyMMdd");    // unzulässig
diff09 INTERVAL ("MMddhhmmss");  // zulässig
Nachstehend zwei praktische Beispiele für INTERVAL:
//Monatsbereichsintervall 
diff01 INTERVAL ("yyyyMM");
t1 TIMESTAMP ("yyyyMM") = "200504";
t2 TIMESTAMP ("yyyyMM") = "200604";

diff01 = t2 - t1;
// diff01 ist "+000100" (1 Jahr)

// Sekundenbereichsintervall
diff02 INTERVAL ("ddhhmmss");
t3 TIMESTAMP ("yyyyMMddhhmm") = "200604201027";
t4 TIMESTAMP ("yyyyMMddhhmm") = "200604201555";

diff02 = t4 - t3;
// diff02 ist "+00052800" (5 Stunden, 28 Minuten)

Überlegungen zur Kompatibilität

Tabelle 2. Überlegungen zur Kompatibilität
Plattform Problem
JavaScript-Generierung Die folgenden Typen werden unterstützt: ANY, BIGINT, BIN (nur, wenn keine Dezimalstellen vorhanden sind), Boolean, DataItem, DATE, DECIMAL, Delegate, Dictionary, FLOAT, INT, NUM, NUMBER, SMALLFLOAT, SMALLINT, STRING (nur, wenn keine Größenbegrenzung besteht) , TIME, TIMESTAMP, NUM, MONEY, Serviceabschnitte, Schnittstellenabschnitte, externe Typen (Stereotyp JavaScript), Gruppen von unterstützten Typen und nicht strukturierte Abschnitte des Typs Basic, Exception und SQL Record.

Die folgenden Typen werden nicht unterstützt: ArrayDictionary, BIN (mit Dezimalstellen), BLOB, CHAR, CLOB, DBCHAR, HEX, INTERVAL, MBCHAR, NUMC, STRING (mit einer Größenbegrenzung), PACF, UNICODE und strukturierte Datensatzabschnitte.


Feedback