Datum-Zeit-Arithmetik und -Vergleiche

Die Werte DATE, TIME und TIMESTAMP können mit einem anderen Wert desselben Typs verglichen werden. Vergleiche sind chronologisch. Datum/Zeit-Werte können auch inkrementiert, dekrementiert und subtrahiert werden.

Wenn DB2 als Datenspeicher verwendet wird, kann auch die DB2-Zeichenfolgedarstellung der Typen DATE, TIME und TIMESTAMP verwendet werden.

Tabelle 1. Datums-, Zeit- und Zeitmarkenformate. Die Zeichenfolgedarstellung eines Datums oder einer Zeit kann die Formate ISO, USA, EUR oder JIS haben. Die Zeichenfolgedarstellung einer Zeitmarke (TIMESTAMP) verwendet das Format ISO.
Format Datumsformat Datumsbeispiele Zeitformat Zeitbeispiele
ISO jjjj-mm-tt 1987-02-24 1987-2-24 hh.mm.ss 13.50.00 13.50
USA mm/tt/jjjj 2/24/1987 hh:mm AM oder PM 1:50 pm 02:10 AM
EUR tt.mm.jjjj 24.02.1987 24.2.1987 hh.mm.ss 13.50.00 13.55
JIS jjjj-mm-tt 1987-02-24 hh:mm:ss 13:50 13:50:05

Beispiel 1: Arithmetische Vergleiche von Datum und Zeit

e.hiredate > '1990-02-24'
Die Zeitmarke 24. Februar 1990, 13:50, kann wie folgt dargestellt werden:
'1990-02-24-13.50.00.000000'
oder
'1990-02-24-13.50.00'

Wenn DB2 als Datenspeicher verwendet wird, können dezimale Zeitdauern aus DB2 für Ausdrücke und Vergleiche verwendet werden. Eine Datumsdauer ist eine dezimale Zahl (8,0), die die Differenz zwischen zwei Datumsangaben im Format JJJJMMTT darstellt. Eine Zeitdauer ist eine dezimale Zahl (6,0), die die Differenz zwischen zwei Zeitwerten im Format HHMMSS darstellt. Eine Zeitmarkendauer ist eine dezimale Zahl (20,6), die die Differenz zwischen zwei Zeitmarkenwerten im Format JJJJMMTTHHMMSS.ZZZZZZ darstellt (dabei ist ZZZZZZ die Anzahl der Mikrosekunden, die hinter dem Dezimalzeichen steht).

Zwei Datumswerte (oder Zeitwerte oder Zeitmarkenwerte) können voneinander subtrahiert werden, was eine Zeitdauer als Ergebnis liefert. Ist der zweite Operand größer als der erste, so ergibt sich für die Dauer eine negative Dezimalzahl. Eine Dauer kann von einem Datum-/Zeitwert subtrahiert oder zu ihm hinzuaddiert werden, was als Ergebnis einen neuen Datum-/Zeitwert liefert.

Beispiel 2: Arithmetische Vergleiche von Datum und Zeit

DATE('3/15/2000') - '12/31/1999' ergibt die Dezimalzahl 215, die einer Dauer von 0 Jahren, 2 Monaten und 15 Tagen entspricht.

Zeiträume sind eigentlich Dezimalzahlen und können in arithmetischen Ausdrücken und Vergleichen verwendet werden.

( DATE('3/15/2000') - '12/31/1999' ) + 14 > 215 evaluates to TRUE.

DATE('12/31/1999') + DECIMAL(215,8,0) gibt den Datumswert 3/15/2000 zurück.

TIME('11:02:26') - '00:32:56' ergibt die Dezimalzahl 102930, die einer Zeitdauer von 10 Stunden, 29 Minuten und 30 Sekunden entspricht.

TIME('00:32:56') + DECIMAL(102930,6,0) ergibt den Zeitwert 11:02:26.

TIME('00:00:59') + DECIMAL(240000,6,0) ergibt den Zeitwert 00:00:59.

e.hiredate + DECIMAL(500,8,0) > '2000-10-01' bedeutet einen Vergleich des Einstellungsdatums plus 5 Monate mit dem Datum 10/01/2000.


Symbol, das den Typ des Artikels anzeigt. Konzeptartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cque_dtacomp
Dateiname:cque_dtacomp.html