Share via


DATUMSDIFFERENZ (SSIS-Ausdruck)

Gibt die Anzahl von Datums- und Zeiteinheiten zurück, die zwischen zwei angegebenen Daten überschritten wurden. Der datepart-Parameter identifiziert, welche Datums- und Zeiteinheiten verglichen werden sollen.

Syntax

DATEDIFF(datepart, startdate, endate)

Argumente

  • datepart
    Der Parameter, der angibt, welche Datumseinheit verglichen und für welche Datumseinheit ein Wert zurückgegeben werden soll.

  • startdate
    Das Startdatum des Intervalls.

  • endate
    Das Enddatum des Intervalls.

Ergebnistypen

DT_I4

Hinweise

Die folgende Tabelle listet die Datumseinheiten und Abkürzungen auf, die von der Ausdrucksauswertung erkannt werden.

Datumseinheit

Abkürzungen

Year

yy, yyyy

Quarter

qq, q

Month

mm, m

Dayofyear

dy, y

Day

dd, d

week

wk, ww

Weekday

dw, w

Hour

Hh

Minute

mi, n

Second

ss, s

Millisecond

Ms

DATEDIFF gibt ein NULL-Ergebnis zurück, wenn eines der Argumente NULL ist.

Ein Datumsliteral muss explizit in einen der date-Datentypen umgewandelt werden. Weitere Informationen finden Sie unter Integration Services-Datentypen.

HinweisHinweis

Der Ausdruck wird nicht überprüft, wenn ein Datumsliteral explizit in einen der folgenden Datumsdatentypen umgewandelt wird: DT_DBTIMESTAMPOFFSET, DT_DBTIMESTAMP2 oder DT_DBTIME2.

Ein Fehler wird gemeldet, wenn ein Datum ungültig ist, wenn die Datums- oder Zeiteinheit keine Zeichenfolge ist, wenn das Startdatum kein Datum ist oder wenn das Enddatum kein Datum ist.

Wenn das Enddatum vor dem Startdatum liegt, gibt die Funktion eine negative Zahl zurück. Wenn das Startdatum und das Enddatum identisch sind oder im gleichen Zeitraum liegen, gibt die Funktion Null zurück.

Beispiele

In diesem Beispiel wird die Anzahl von Tagen zwischen zwei Datumsliteralen berechnet. Falls das Datum das Format "mm/dd/yyyy" aufweist, wird 7 zurückgegeben.

DATEDIFF("dd", (DT_DBTIMESTAMP)"8/1/2003", (DT_DBTIMESTAMP)"8/8/2003")

In diesem Beispiel wird die Anzahl von Monaten zwischen einem Datumsliteral und dem aktuellen Datum zurückgegeben.

DATEDIFF("mm", (DT_DBTIMESTAMP)"8/1/2003",GETDATE())

In diesem Beispiel wird die Anzahl von Wochen zwischen dem Datum in der ModifiedDate-Spalte und der YearEndDate-Variablen zurückgegeben. Falls YearEndDate einen date-Datentyp aufweist, ist keine explizite Umwandlung erforderlich.

DATEDIFF("Week", ModifiedDate,@YearEndDate)