Mit diesem Handbuch lernen Sie, wie Sie den Unterschied zwischen zwei Daten mit der Funktion SQL Server datediff () berechnen können.
Grundnutzung
Mit der datierten Funktion können Sie Start- und Enddatumwerte übergeben. Anschließend berechnet und gibt es den Unterschied zwischen ihnen in Jahren, Monaten, Wochen, Tagen usw. zurück.
Die Funktionssyntax lautet wie:
datiff (Einheit, start_date, end_date);Funktionsargumente
Die Funktion drei Hauptargumente, die als:
1. Einheit - repräsentiert die Einheiten, unter denen die Funktion die Differenz zwischen dem angegebenen Start- und Enddatum meldet. SQL Server unterstützt nicht das Bestehen des Werts des Einheitsparameters als Variable einer Zeichenfolge wie "Jahr"
Die folgende Tabelle zeigt die Einheit und Abkürzung, die Sie im Einheitsparameter verwenden können.
Abkürzung der Einheit2. start_date & end_date - definiert die beiden Daten, deren Differenz berechnet werden muss. Der Wert eines Arguments kann eine wörtliche Zeichenfolge oder ein Ausdruck sein, der auf einen Wert des Typs auflösen kann: Datum, DateTim2, DateTimeOffset, Uhrzeit, SmallDatetime.
Um Unklarheiten zu vermeiden, sollten Sie vier Ziffern für ein Jahr verwenden, um ein Jahr zu repräsentieren.
Funktionsrückgabewert
Die datierende Funktion gibt einen INT -Typ zurück, der den Differenz- und Enddatum darstellt. Manchmal kann der Unterschied für die Größe einer Ganzzahl außerhalb des Bereichs außerhalb des Bereichs liegen. In diesem Fall gibt die datierende Funktion einen Fehler zurück. Erwägen Sie, die Funktion datediff_big für ein solches Szenario zu verwenden.
SQL Server datEf () Beispiele
Die folgenden Beispiele sind nützlich, um zu veranschaulichen.
Beispiel 1:
Betrachten Sie das unten gezeigte Beispiel:
Select datiff (Monat, '1998-09-06', '2022-06-06') als Differenz;Die obige Abfrage sollte den Gesamtmonatunterschied zwischen Start und Enddatum als:
UnterschiedBeispiel 2:
Angenommen, Sie möchten berechnen, wie viele Sekunden an einem Tag da sind? Sie können die datierte Funktion wie gezeigt verwenden:
SELECT DATEIFF (zweiter, '2022-01-01', '2022-01-02') als Differenz;Das obige Beispiel sollte die Anzahl der Sekunden an einem Tag als:
-----------Beispiel 3:
Sie können auf ein Szenario stoßen, in dem die Differenz zwischen zwei Daten groß als das Maximum für einen Ganzzahltyp ist. Zum Beispiel der Unterschied in den Nanosekunden an einem Tag.
Betrachten Sie die Beispielabfrage unten:
Select datiff (Nanosekunde, '2022-01-01', '2022-01-02') als Differenz;Wenn wir die obige Abfrage ausführen, gibt SQL Server einen Überlauffehler als:
Die veraltete Funktion führte zu einem Überlauf. Die Anzahl der Datumspartner, die zwei Datums-/Uhrzeitinstanzen trennen, ist zu groß. Versuchen Sie, Datediff mit einem weniger präzisen Datum zu verwenden.Um dies zu beheben, verwenden Sie die Funktion datediff_big als:
SELECT DATIFF_BIG (Nanosekunden, '2022-01-01', '2022-01-02') als Differenz;In diesem Beispiel gibt die Abfrage die Anzahl der Nanosekunden an einem Tag zurück als:
UnterschiedBeispiel 4:
Das folgende Beispiel zeigt, wie Sie den Unterschied in den Stunden zwischen 1998 und 2021 berechnen können.
Select datiff (Stunde, '1998-01-01', '2021-01-01');Der resultierende Wert ist wie:
-----------Beispiel 5:
Da der Rückgabewert der datierten Funktion eine Ganzzahl ist, können wir sie in eine Zeichenfolge werfen, sodass Sie eine String -Verkettung durchführen können.
Zum Beispiel:
Select Cast (datiff (Stunde, '1998-01-01', '2021-01-01') als Varchar (20)) + 'Stunden';Das obige Beispiel gibt den Wert aus einer Ganzzahl -Zeichenfolge und fügt eine String -Verkettung hinzu.
Das Beispielergebnis ist wie:
--------------------------Letzte Worte
Wir hoffen. Die in diesem Leitfaden angegebenen Beispiele können Ihnen helfen, Datums- und Zeitdaten effizienter zu manipulieren.
Danke fürs Lesen!