Ein erforderlicher Parameter. Dies ist die Einheit, in der DATEDIFF() die Differenz zwischen startdate und enddate angibt. Im folgenden Abschnitt findest du die verschiedenen Arten von Werten, die er enthalten kann.
startdate
Eine erforderliche Angabe, die einen Datetime-Wert angibt, der das Startdatum bezeichnet.
enddate
Eine erforderliche Angabe, die einen Datetime-Wert angibt, der das Enddatum bezeichnet.
datepart syntax
Der Parameter datepart kann eine Vielzahl von Werten annehmen, darunter die folgenden
Jahr: year, y, yy, oder yyyy
Quartal: quarter, qq, q
Monat: month, mm, m
Tag: dayofyear, day, dd, d
Woche: week, wk, ww
Stunde: hour, hh
Minute: minute, mi, n
Zweitens: second, ss, s
Millisecond: millisecond, ms
Mikrosekunde: microsecond, mcs
Nanosecond: nanosecond, ns
Beachte, dass datepart nicht in Anführungszeichen gesetzt werden sollte. Die folgende Syntax ist zum Beispiel korrekt:
Wenn du mit DATEDIFF() arbeitest, können die Ergebnisse entweder positive oder negative Werte sein. Wenn enddate später ist als startdate, dann liefert DATEDIFF() einen positiven Wert. Wenn enddate früher als startdate ist, gibt DATEDIFF() einen negativen Wert zurück.
Beispiel 1: Finde die Differenz zwischen zwei Daten
Beispiel 3: Finde die Differenz zwischen zwei Datumsspalten
Betrachte die Tabelle sales.orders, die diese Spalten enthält:
order_date (wenn die Bestellung aufgegeben wird)
shipped_date (wenn die Bestellung versandt wird)
Um die Versanddauer zu verfolgen, können wir die Funktion DATEDIFF() nutzen.
SELECT
order_id,
order_date,
shipped_date,
DATEDIFF(day, order_date, shipped_date) order_to_ship_days
FROM sales.ordersBereitgestellt von
order_id
order_date
shipped_date
order_to_ship_days
1
2016-01-01T00:00:00.000Z
2016-01-03T00:00:00.000Z
2
2
2016-01-01T00:00:00.000Z
2016-01-03T00:00:00.000Z
2
3
2016-01-02T00:00:00.000Z
2016-01-03T00:00:00.000Z
1
Beispiel 4. Finde das Intervall zwischen dem heutigen Datum und einer Spalte
Wenn wir die Tabelle sales.orders wie in Beispiel 3 verwenden, können wir mit DATEDIFF() das Intervall zwischen dem heutigen Datum und dem Datum, an dem eine Bestellung aufgegeben wird, ermitteln.
SELECT
order_id,
order_date,
GETDATE()AS todays_date,
DATEDIFF(day, order_date, GETDATE())AS order_to_today -- interval between order_date with today's dateFROM sales.ordersBereitgestellt von
order_id
order_date
shipped_date
order_to_ship_days
1
2016-01-01T00:00:00.000Z
2022-10-09T02:47:00.403Z
2473
2
2016-01-01T00:00:00.000Z
2022-10-09T02:47:00.403Z
2473
3
2016-01-02T00:00:00.000Z
2022-10-09T02:47:00.403Z
2472
Zusätzliche Hinweise
Die Funktion DATEDIFF() gibt einen Fehler zurück, wenn das Ergebnis außerhalb des Bereichs liegt (d.h. der Wert ist größer als +2.147.483.647 oder kleiner als -2.147.483.647). In diesem Fall ist die Funktion DATEDIFF_BIG() geeignet.
Technische Anforderungen
Funktioniert in SQL Server (ab 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse
Lerne mehr über Python-Lambda-Funktionen, wozu sie gut sind und wann man sie benutzt. Enthält praktische Beispiele und bewährte Methoden für eine effektive Umsetzung.
Lerne, wie du Zahlen in Python mit round(), f-Strings, format(), dem decimal-Modul, NumPy und mehr auf zwei Dezimalstellen rundest — inklusive Vergleichstabelle der Methoden.
Mach dich mit Python-Datenstrukturen vertraut: Lerne mehr über Datentypen und primitive sowie nicht-primitive Datenstrukturen wie Strings, Listen, Stapel usw.
Was ist die
DATEDIFF()Funktion?Die Funktion
DATEDIFF()liefert das Intervall zwischen zwei Zeitstempeln oder Datumswerten in einer bestimmten Einheit.DATEDIFF()syntaxParameter
Was ist das?
datepartEin erforderlicher Parameter. Dies ist die Einheit, in der
DATEDIFF()die Differenz zwischenstartdateundenddateangibt. Im folgenden Abschnitt findest du die verschiedenen Arten von Werten, die er enthalten kann.startdateEine erforderliche Angabe, die einen Datetime-Wert angibt, der das Startdatum bezeichnet.
enddateEine erforderliche Angabe, die einen Datetime-Wert angibt, der das Enddatum bezeichnet.
datepartsyntaxDer Parameter
datepartkann eine Vielzahl von Werten annehmen, darunter die folgendenyear,y,yy, oderyyyyquarter,qq,qmonth,mm,mdayofyear,day,dd,dweek,wk,wwhour,hhminute,mi,nsecond,ss,smillisecond,msmicrosecond,mcsnanosecond,nsBeachte, dass
datepartnicht in Anführungszeichen gesetzt werden sollte. Die folgende Syntax ist zum Beispiel korrekt:Das Folgende ist falsch.
DATEDIFF()BeispieleWenn du mit
DATEDIFF()arbeitest, können die Ergebnisse entweder positive oder negative Werte sein. Wennenddatespäter ist alsstartdate, dann liefertDATEDIFF()einen positiven Wert. Wennenddatefrüher alsstartdateist, gibtDATEDIFF()einen negativen Wert zurück.Beispiel 1: Finde die Differenz zwischen zwei Daten
Abfrage
Ausgabe
SELECT DATEDIFF(year, ‘2022-12-31', ‘2024-06-01')1
SELECT DATEDIFF(quarter, ‘2022-12-31', ‘2024-06-01')2
SELECT DATEDIFF(month, ‘2022-12-31', ‘2024-06-01')6
SELECT DATEDIFF(day, ‘2022-12-31', ‘2024-06-01')153
SELECT DATEDIFF(week, ‘2022-12-31', ‘2024-06-01')21
Beispiel 2: Finde die Differenz zwischen zwei Zeitstempeln
Abfrage
Ausgabe
SELECT DATEDIFF(hour,'2023-12-31 00:00:00','2023-12-31 00:59:59')0
SELECT DATEDIFF(minute,'2023-12-31 00:00:00','2023-12-31 00:59:59')59
SELECT DATEDIFF(second,'2023-12-31 00:00:00','2023-12-31 00:59:59')3599
SELECT DATEDIFF(millisecond,'2023-12-31 00:00:00','2023-12-31 00:59:59')3599000