DATEDIFF (Transact-SQL)
Gibt die Anzahl der Datums- und Zeiteinheiten zurück, die zwischen zwei angegebenen Daten überschritten wurden.
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