DATEDIFF (Transact-SQL)

Gibt die Anzahl der Datums- und Zeiteinheiten zurück, die zwischen zwei angegebenen Daten überschritten wurden.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

DATEDIFF ( datepart , startdate , enddate )

Argumente

  • datepart
    Der Parameter, der angibt, für welche Datumseinheit die Differenz ausgerechnet werden soll. In der folgenden Tabelle sind die Datumseinheiten und Abkürzungen aufgeführt, die von SQL Server 2005 erkannt werden. Diese Datumseinheiten und Abkürzungen können nicht als eine vom Benutzer deklarierte Variable bereitgestellt werden.

    Datumseinheit Abkürzungen

    year

    yy, yyyy

    quarter

    qq, q

    month

    mm, m

    dayofyear

    dy, y

    day

    dd, d

    week

    wk, ww

    Hour

    hh

    minute

    mi, n

    second

    ss, s

    millisecond

    ms

  • startdate -
    Das Startdatum für die Berechnung. startdate ist ein Ausdruck, der einen datetime-Wert oder einen smalldatetime-Wert bzw. eine Zeichenfolge im Datumsformat zurückgibt.

    Da smalldatetime nur eine Genauigkeit auf die Minute aufweist, sind Sekunden und Millisekunden immer 0, wenn ein smalldatetime-Wert verwendet wird.

    Wenn Sie nur die letzten beiden Ziffern der Jahreszahl angeben, liegen Werte, die kleiner oder gleich den letzten beiden Ziffern des Wertes der Konfigurationsoption two-digit year cutoff sind, im selben Jahrhundert wie das Umstellungsjahr. Werte, die größer als die letzten beiden Ziffern des Wertes dieser Option sind, liegen im Jahrhundert vor dem Jahrhundert des Umstellungsjahres. Wenn two-digit year cutoff z. B. auf 2049 (Standard) festgelegt ist, wird das Jahr 49 als 2049 und das Jahr 50 als 1950 interpretiert. Um die Mehrdeutigkeit von Datumsangaben zu vermeiden, sollten Sie vierstellige Jahresangaben verwenden.

    Weitere Informationen zum Angeben von Zeitwerten finden Sie unter Zeitformate. Weitere Informationen zum Angeben von Datumswerten finden Sie unter Datum und Uhrzeit (Transact-SQL).

  • enddate
    Das Enddatum für die Berechnung. enddate ist ein Ausdruck, der einen datetime-Wert oder einen smalldatetime-Wert bzw. eine Zeichenfolge im Datumsformat zurückgibt.

Rückgabetypen

integer

Hinweise

startdate wird von enddate subtrahiert. Wenn startdate einen späteren Zeitpunkt als enddate angibt, wird ein negativer Wert zurückgegeben.

DATEDIFF erzeugt einen Fehler, wenn das Ergebnis außerhalb des Bereichs für ganze Zahlen liegt. Bei Millisekunden beträgt der maximale Zeitraum 24 Tage, 20 Stunden, 31 Minuten und 23,647 Sekunden. Bei Sekunden sind dies maximal 68 Jahre.

Durch das Zählen von überschrittenen Zeitbegrenzungen wie Minuten, Sekunden oder Millisekunden ist das von DATEDIFF angegebene Ergebnis für alle Datentypen konsistent. Das Ergebnis ist ein Wert für eine ganze Zahl mit Vorzeichen, der der Anzahl der datepart-Begrenzungen entspricht, die zwischen dem ersten und dem zweiten Datum überschritten wurden. Beispielsweise ist die Anzahl der Wochen zwischen Sonntag, dem 4. Januar, und Sonntag, dem 11. Januar, gleich 1.

Beispiele

In diesem Beispiel wird die Differenz in Tagen zwischen dem aktuellen Datum und dem Bestelldatum für Produkte in der AdventureWorks-Datenbank ermittelt.

USE AdventureWorks;
GO
SELECT DATEDIFF(day, OrderDate, GETDATE()) AS NumberOfDays
FROM Sales.SalesOrderHeader;
GO

Siehe auch

Verweis

CAST und CONVERT (Transact-SQL)
Datentypen (Transact-SQL)
Datums- und Zeitfunktionen (Transact-SQL)

Andere Ressourcen

ISO 8601-Format
Alphabetisches Datumsformat
Numerisches Datumsformat
ODBC-Datetime-Format
Zeitformate
Unstrukturierte Zeichenfolgen

Hilfe und Informationen

Informationsquellen für SQL Server 2005