Menü

DateDiff

Zurück | Ebene zurück

Beschreibung

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

Syntax

DATEDIFF ( datepart , startdate , enddate )

Argumente

datepart

Der Parameter, der angibt, für welche Datumseinheit die Differenz ausgerechnet werden soll. Die Tabelle listet die Datumseinheiten und Abkürzungen auf, die von Microsoft® SQL Server™ erkannt 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 Ausgangsdatum für die Berechnung. startdate ist ein Ausdruck, der einen datetime- oder smalldatetime-Wert oder eine Zeichenfolge in einem Datumsformat zurückgibt.

Da smalldatetime nur eine Genauigkeit auf die Minute aufweist, sind Sekunden und Millisekunden immer gleich Null, 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 in dem Jahrhundert, das dem Jahrhundert des Umstellungsjahres vorausgeht. Wenn two digit year cutoff z. B. auf 2049 (Standardeinstellung) eingestellt ist, wird das Jahr 49 als 2049 und das Jahr 50 als 1950 interpretiert. Um die Zweideutigkeit von Datumsangaben zu vermeiden, sollten Sie vierstellige Jahresangaben verwenden.

Weitere InformDatentypenationen zum Angeben von Zeitwerten finden Sie unter Zeitformate. Weitere Informationen zum Angeben von Datumsangaben finden Sie unter „datetime“ und „smalldatetime“.

enddate

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

Rückgabetypen

integer

Hinweise

startdate wird von enddate subtrahiert. Wenn startdate später ist als enddate, 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 Einheiten wie Minuten, Sekunden oder Millisekunden ist das von DATEDIFF erzeugte Ergebnis über alle Datentypen hinweg konsistent. Das Ergebnis ist ein ganzzahliger, vorzeichenbehafteter Wert, der der Zahl der zwischen dem ersten und dem zweiten Datum überschrittenen datepart-Einheiten entspricht. Beispielsweise ist die Anzahl der Wochen zwischen Sonntag, dem 4. Januar, und Sonntag, dem 11. Januar, gleich 1.

Beispiel  - Tages-Differenz

SELECT GETDATE() Heute, 
       DATEDIFF(DAY,GetDate(),'12.12.2001') Bis12122001
GO
Heute                          Bis12122001 
------------------------------ ----------- 
2001-02-12 13:47:00.280        303

(1 row(s) affected)

Der Select-Befehl gibt zwei Spalten aus, in der ersten das aktuelle Tagesdatum, und in der 2. Spalte den Wert der Differenz an Tagen zwischen dem Tagesdatum und dem festen Datum 12.12.2001.

Jeder Spalte wird eineigener Alias zugeordnet, der einfach mit einem Leerzeichen getrennt wird. Die Spalte für das Tagesdatum wird mit Heute bezeichnet und das Enddatum mit Bis12122001.

Anstatt des Parameters DAY für die Datumseinheit, kann auch die DD oder D benutzt werden.

Siehe auch 

Datentypen des SQL Server