Inhaltsverzeichnis

Search

  1. Vorwort
  2. Umwandlungssprache
  3. Konstanten
  4. Operatoren
  5. Variablen
  6. Datumsangaben
  7. Funktionen

Referenzhandbuch für die Umwandlungssprache

Referenzhandbuch für die Umwandlungssprache

DATE_DIFF

DATE_DIFF

Gibt den Zeitraum zwischen zwei Datumsangaben zurück. Beim Format können Sie zwischen folgenden Einheiten wählen: Jahre, Monate, Tage, Stunden, Minuten, Sekunden, Millisekunden, Mikrosekunden und Nanosekunden.
Data Integration Service
zieht das zweite Datum vom ersten ab und gibt die Differenz zurück.
In
Data Integration Service
basiert die Berechnung der DATE_DIFF-Funktion auf der Anzahl von Monaten und nicht der Anzahl von Tagen. Es berechnet den Datumsunterschied für Teilmonate mit den in jedem Monat ausgewählten Tagen. Zur Berechnung des Datumsunterschieds für den Teilmonat fügt
Data Integration Service
die in dem Monat bereits vergangenen Tage hinzu. Anschließend wird der Wert durch die Gesamtanzahl von Tagen im ausgewählten Monat dividiert.
Es kann sein, dass
Data Integration Service
für einen Zeitraum in einem Schaltjahr einen anderen Wert zurückgibt als für den gleichen Zeitraum in einem gewöhnlichen Jahr. Dieser Unterschied tritt dann auf, wenn Februar Teil der DATE_DIFF-Funktion ist. DATE_DIFF dividiert die Februartage in einem Schaltjahr durch 29, in anderen Jahren durch 28.
Beispiel: Sie möchten die Anzahl der Monate zwischen 13. September und 19. Februar berechnen. In einem Schaltjahr berechnet DATE_DIFF den Teilmonat Februar als 19/29 bzw. 0.655 Monate. In einem Nicht-Schaltjahr ergibt Februar 19/28 bzw. 0.678 Monate. Auf diese Weise berechnet
Data Integration Service
auch den Datumsunterschied für die übrigen Monate und gibt den Gesamtwert für den angegebenen Zeitraum zurück.
Einige Datenbanken verwenden möglicherweise andere Algorithmen zur Berechnung der Differenz zwischen Datumsangaben.

Syntax

DATE_DIFF(
date1
,
date2
,
format
)
In der folgenden Tabelle werden die Argumente für diesen Befehl beschrieben:
Argument
Erforderlich/
Optional
Beschreibung
date1
Erforderlich
Datum/Zeit-Datentyp. Übergibt das erste Datum im Vergleich. Sie können einen beliebigen gültigen Umwandlungausdruck eingeben.
date2
Erforderlich
Datum/Zeit-Datentyp. Übergibt das zweite Datum im Vergleich. Sie können einen beliebigen gültigen Umwandlungausdruck eingeben.
format
Erforderlich
Formatstring mit Einheitenangabe für Datum oder Uhrzeit. Sie können zwischen folgenden Einheiten wählen: Jahre, Monate, Tage, Stunden, Minuten, Sekunden, Millisekunden, Mikrosekunden und Nanosekunden. Sie können auch nur einen Teil des Datums spezifizieren, z. B. 'mm'. Setzen Sie den Formatstring zwischen einfache Anführungszeichen. Bei Formatstrings muss nicht auf Groß-/Kleinschreibung geachtet werden. Der Formatstring 'mm' hat beispielsweise dieselbe Bedeutung wie 'MM', 'Mm' oder 'mM'.

Rückgabewert

Double-Wert Wenn
date1
später als
date2
liegt, ist der Rückgabewert eine positive Zahl. Wenn
date1
früher als
date2
liegt, ist der Rückgabewert eine negative Zahl.
0, wenn das erste Datum mit dem zweiten identisch ist.
NULL, wenn einer (oder beide) der Datumswerte NULL ist.

Beispiele

Die folgenden Ausdrücke geben die Anzahl der Stunden zwischen den Ports DATE_PROMISED und DATE_SHIPPED zurück:
DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'HH' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'HH12' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'HH24' )
DATE_PROMISED
DATE_SHIPPED
RETURN VALUE
Jan 1 1997 12:00:00AM
Mar 29 1997 12:00:00PM
-2100
Mar 29 1997 12:00:00PM
Jan 1 1997 12:00:00AM
2100
NULL
Dec 10 1997 5:55:10PM
NULL
Dec 10 1997 5:55:10PM
NULL
NULL
Jun 3 1997 1:13:46PM
Aug 23 1996 4:20:16PM
6812.89166666667
Feb 19 2004 12:00:00PM
Feb 19 2005 12:00:00PM
-8784
Die folgenden Ausdrücke geben die Anzahl der Tage zwischen den Ports DATE_PROMISED und DATE_SHIPPED zurück:
DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'D' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'DD' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'DDD' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'DY' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'DAY' )
DATE_PROMISED
DATE_SHIPPED
RETURN VALUE
Jan 1 1997 12:00:00AM
Mar 29 1997 12:00:00PM
-87.5
Mar 29 1997 12:00:00PM
Jan 1 1997 12:00:00AM
87.5
NULL
Dec 10 1997 5:55:10PM
NULL
Dec 10 1997 5:55:10PM
NULL
NULL
Jun 3 1997 1:13:46PM
Aug 23 1996 4:20:16PM
283.870486111111
Feb 19 2004 12:00:00PM
Feb 19 2005 12:00:00PM
-366
Die folgenden Ausdrücke geben die Anzahl der Monate zwischen den Ports DATE_PROMISED und DATE_SHIPPED zurück:
DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'MM' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'MON' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'MONTH' )
DATE_PROMISED
DATE_SHIPPED
RETURN VALUE
Jan 1 1997 12:00:00AM
Mar 29 1997 12:00:00PM
-2.91935483870968
Mar 29 1997 12:00:00PM
Jan 1 1997 12:00:00AM
2.91935483870968
NULL
Dec 10 1997 5:55:10PM
NULL
Dec 10 1997 5:55:10PM
NULL
NULL
Jun 3 1997 1:13:46PM
Aug 23 1996 4:20:16PM
9.3290162037037
Feb 19 2004 12:00:00PM
Feb 19 2005 12:00:00PM
-12
Die folgenden Ausdrücke geben die Anzahl der Jahre zwischen den Ports DATE_PROMISED und DATE_SHIPPED zurück:
DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'Y' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'YY' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'YYY' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'YYYY' )
DATE_PROMISED
DATE_SHIPPED
RETURN VALUE
Jan 1 1997 12:00:00AM
Mar 29 1997 12:00:00PM
-0.24327956989247
Mar 29 1997 12:00:00PM
Jan 1 1997 12:00:00AM
0.24327956989247
NULL
Dec 10 1997 5:55:10PM
NULL
Dec 10 1997 5:55:10PM
NULL
NULL
Jun 3 1997 1:13:46PM
Aug 23 1996 4:20:16PM
0.77741801697531
Feb 19 2004 12:00:00PM
Feb 19 2005 12:00:00PM
-1
Die folgenden Ausdrücke geben die Anzahl der Monate zwischen den Ports DATE_PROMISED und DATE_SHIPPED zurück:
DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'MM' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'MON' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'MONTH' )
DATE_PROMISED
DATE_SHIPPED
LEAP YEAR VALUE (in Months)
NON-LEAP YEAR VALUE (in Months)
Sept 13
Feb 19
-5.237931034
-5.260714286
NULL
Feb 19
NULL
N/A
Sept 13
NULL
NULL
N/A