SQLShack (Deutsch)

SQL-Datumsformatfunktionen wie DateDiff Die SQL-Funktion und die DateAdd-SQL-Funktion werden häufig von Datenbankadministratoren verwendet, aber viele von uns haben sich nie die Zeit genommen, diese äußerst nützlichen Funktionen vollständig zu verstehen. Für Profis, die gerade erst mit SQL Server beginnen, sind diese Funktionen einige der ersten, die sich damit vertraut machen. Hoffentlich bietet dieser Artikel für jeden etwas im gesamten Kompetenzspektrum.

Einer der interessantesten Datentypen, die in der Welt der relationalen Datenbanken unterstützt werden, ist DateTime. In diesem Artikel werden wir uns mit der Arbeit mit Datums- und Uhrzeitdatentypen in SQL Server befassen. Wir werden die Grundlagen des Datums- und Uhrzeitdatentyps verstehen und verschiedene Beispiele zum Abfragen der Datums- und Uhrzeitfelder mithilfe der in SQL Server integrierten Funktionen zum Bearbeiten der Daten und zum Transformieren von Datums- und Uhrzeitwerten sehen Führen Sie in einigen Fällen arithmetische Operationen aus.

Schauen wir uns zunächst einige beliebte SQL-Datumsformat- und -Zeitfunktionen an.

Standardmäßig unterstützt SQL Server die Sprachen von Natur aus die vom Windows-Betriebssystem unterstützt werden. Abhängig von den Einstellungen für das Gebietsschema und die Sortierung bei der Installation von SQL Server kann die Anzeige des SQL-Datumsformats unterschiedlich sein. Die Art der Daten, die Sie abspielen möchten, hängt von der Ländereinstellung und der SQL Server-Sortiereinstellung ab.

In SQL Server hat der Datentyp DATE zwei Standardformate für neutrale Sprachen.

  1. JJJJMMTT

    Das folgende Beispiel ist HumanResource Die Mitarbeitertabelle wird abgefragt, um das SQL-Datumsformat der HireDate-Werte anzuzeigen.

    1
    2
    3
    4
    5
    6

    USE AdventureWorks2014;
    GO
    SELECT HireDate, BusinessEntityID, LoginID, JobTitle
    FROM HumanResources.Employee;
    GO

    Jetzt abfragen die HireDate-Spalte im neutralen Sprachformat. In der Abfrage übergeben wir einen ganzzahligen Wert, der aus dem Jahr 2008 besteht. Monat, 12 und der 7. Tag.

    1
    2
    3

    SELECT HireDate, BusinessEntityID, LoginID, JobTitle
    FROM HumanResources.Employee
    WHERE HireDate = „20081207“;

    Hinweis: Dies bedeutet im Wesentlichen, dass der Eingabewert numerisch ist. Die SQL-Engine konvertiert sie intern und erhält tatsächlich einen Zeichenwert. Es ist also von einfachen Anführungszeichen umgeben.

  2. MM-TT-JJJJ (US-basiertes Format)

    In diesem SQL-Datumsformat wird das Die HireDate-Spalte wird mit den Werten MM-TT-JJJJ gespeist. Dies ist kein ganzzahliges Format. Lassen Sie uns dieselbe Abfrage mit dem neuen SQL-Datumsformat des Eingabewerts „12 -07-2008“ für die Spalte „HireDate“ ausführen. Führen Sie also die folgende Abfrage aus und überprüfen Sie die Ausgabe. Die Ausgabe ist der gleiche Satz von fünf Datensätzen.

    1
    2
    3
    4

    SELECT HireDate, BusinessEntityID, LoginID, JobTitle
    FROM HumanResources.Employee
    WHERE HireDate = „12-07-2008“;
    GO

    Hinweis: Die neutralen Sprachformatwerte sind implizit und SQL Server führt die erforderliche Konvertierung durch. Jedes andere SQL-Datumsformat erfordert eine ordnungsgemäße Konvertierung von Operanden oder / und Werten.

In den folgenden Beispielen wird eine Fehlermeldung angezeigt, da das SQL-Datumsformat nicht ordnungsgemäß verwendet wird.

1
2
3

SELECT HireDate, BusinessEntityID, LoginID, JobTitle
FROM HumanResources.Employee
WHERE HireDate = „25-12-2008 „;

Nun werden sowohl der Operand als auch seine Werte in ein Standardformat 103 konvertiert. Weitere Informationen zu CAST- und Konvertierungsfunktionen finden Sie hier.Das folgende Beispiel gibt alle Zeilen des Mitarbeiters zurück, in denen HireDate 25 -12-2008

Nun Schauen Sie sich einige der Datumsfunktionen an, die SQL Server für uns zur Verfügung stellt. Mit diesen Datumsfunktionen können wir mit den verschiedenen Teilen der Datumsangaben arbeiten und sogar einige der Funktionen bearbeiten, mit denen wir in Bezug auf Datumsangaben arbeiten können.

Sehen wir uns die DATEPART SQL-Funktion an. Diese Funktion gibt einen ganzzahligen Wert aus der angegebenen Datumsspalte zurück.

Fragen Sie die HireDate-Spalte ab, um nur den Jahresanteil des Datums zurückzugeben.

Im folgenden Beispiel wird eine ganzzahlige Ausgabespalte mit dem Namen generiert sollte nur die Jahreswerte zurückgeben

1
2
3

SELECT DATEPART (YEAR, HireDate) AS
FROM HumanResources.Employee;
GO

Fragen Sie das Mietdatum ab Spalte, um nur den Monatsteil des Datums zurückzugeben

Im folgenden Beispiel wird eine ganzzahlige Ausgabespalte mit dem Namen generiert, und dies sollte nur die Monatswerte

1
2

SELECT DATEPART (MONTH, HireDate) AS
FROM HumanResources.Employee;

Fragen Sie die HireDate-Spalte ab, um nur den Viertelteil von zurückzugeben das Datum

Im folgenden Beispiel wird eine ganzzahlige Ausgabespalte mit dem Namen generiert. Diese sollte nur die Monatswerte

1
2
3

SELECT DATEPART (QUARTER, HireDate) AS
FROM HumanResources.Employee;
GO

Das folgende Beispiel Gibt die Verkaufsdetails für den bestimmten Tag des Felds orderDate zurück. Das Beispiel zeigt auch die Verwendung der DATEPART SQL-Funktion und der wenigen zugehörigen Argumente.

Die SELECT-Anweisung wählt den DATEPART aus, bei dem es sich um den Funktionsnamen handelt, und verwendet zwei Argumente in Klammern. Erstens das Argument datepart und zweitens der Datumsausdruck.

Schauen wir uns die Verwendung der SQL-Funktion DATENAME an. Dies ähnelt einer DATEPART SQL-Funktion, gibt jedoch eine Zeichenfolge aus dem angegebenen Datumsfeld zurück.

Schauen wir uns als nächstes die deterministischen Funktionen an, die Datums- und Zeitteile als ganzzahligen Wert zurückgeben. Im folgenden Beispiel werden ganzzahlige Werte aus dem Feld OrderDate für die entsprechenden Funktionen YEAR und MONTH zurückgegeben.

Die Ausgabe ist ein aggregierter Wert des TotalSales basierend auf den monatlichen Verkäufen.

Nehmen wir nun Ein Blick auf einige andere Funktionen. Und dieser, den wir uns ansehen werden, heißt DATEDIFF. Die DATEDIFF-SQL-Funktion gibt einen vorzeichenbehafteten Ganzzahlwert zurück, mit dem wir die zwischen zwei Daten verstrichene Zeit bestimmen können.

Lassen Sie uns mit der Abfrage spielen, um verschiedene Datumsteile zu verwenden, um die Ergebnisse anzuzeigen.

Im folgenden Beispiel werden die Zeitteile zwischen den beiden DateTime-Feldern zurückgegeben. In diesem Beispiel werden Stunden, Minuten und Sekunden zwischen den DateTime-Werten mithilfe der DATEDIFF-SQL-Funktion

berechnet So verwenden Sie die DATEDIFF-SQL-Funktion in der where-Klausel

Im folgenden Beispiel werden alle Mitarbeiter zurückgegeben, die länger als 10 Jahre mit der Organisation zusammenarbeiten. Die bedingte Logik in der HireDate-Spalte wird mit mehr als 120 Monaten verglichen und in der where-Klausel erwähnt.

1
2
3
4

SELECT *
FROM HumanResources.Employee
WHERE DATEDIFF (MONAT, HireDate, GETDATE ()) > 120;
GO

Verwenden der DateDiff SQL-Funktion mit einer Aggregatfunktion

Das folgende Beispiel gibt die Anzahl der Jahre zwischen dem ersten Einstellungsdatum zurück und das letzte Mietdatum. In diesem Fall suchen wir nach der minimalen HireDate- und der maximalen HireDate-Aggregatfunktion, die als Eingabeparameter für die DATEDIFF-SQL-Funktion verwendet werden.Mit diesen Werten kann man leicht die Anzahl der Jahre ermitteln, die zwischen der ersten und der letzten Einstellung bestanden haben.

1
2

DATEDIFF AUSWÄHLEN (JAHR, MIN (Mietdatum), MAX (Mietdatum)) No_Of_Years
FROM HumanResources.Employee;

Schauen wir uns die DATEADD SQL-Funktion an. Die Funktionen addieren oder subtrahieren den Wert zum angegebenen Datumsteil und geben den geänderten Wert des Datumsteils zurück.

Schauen wir uns das folgende Beispiel an. Der Wert 1 wird zu den verschiedenen Datumsangaben hinzugefügt, und der Wert -1 wird zu den Stunden-Datumsangaben hinzugefügt, und -30 wird zu den Minuten-Datumsangaben hinzugefügt.

In der Ausgabe können wir sehen, dass der Wert auf dem bearbeitet wird GETDATE () -Funktion gemäß dem definierten Datumsteil.

Hinweis: Die SQL-Funktionen DATEADD und DATEDIFF können in SELECT verwendet werden. WHERE-, HAVING-, GROUP BY- und ORDER BY-Klauseln.

Datadiff vs Datediff_BIG

Das ist alles für diesen Artikel im SQL-Datumsformat…

Wrap Up

Bisher haben wir sehr wichtige SQL-Datumsformatfunktionen wie DATEPART, DATENAME, YEAR, MONTH und DAY gesehen, mit besonderem Schwerpunkt auf der DATEADD SQL-Funktion und der DATEDIFF SQL-Funktion. SQL-Datumsformatfunktionen in SQL Server sind sehr leistungsfähig und helfen dabei, aussagekräftige Datenanalysen und Berichte bereitzustellen. In einigen Fällen müssen die Einstellungen für die Sortierung, die Standorteinstellungen, die einfache Neueinstellung des Eingabestreams des Textwerts oder die Korrektur der Datenquelle für das Datum / Uhrzeit-Problem angepasst werden.

Es wird empfohlen, das neutrale Sprachformat zu verwenden, da es in den meisten Fällen besser funktioniert. Endlich sehen wir den Unterschied zwischen der SQL-Funktion DATEDIFF und der SQL-Funktion DATEDIFF_BIG. Ich hoffe dir gefällt dieser Artikel. Wenn Sie Fragen haben, können Sie diese gerne unten kommentieren.

  • Autor
  • Letzte Beiträge
Ich bin ein Datenbanktechnologe mit mehr als 11 Jahren Erfahrung in Datenbanktechnologien. Ich bin Microsoft Certified Professional und habe einen Abschluss als Master of Computer Application.
Meine Spezialität liegt im Entwerfen von & zur Implementierung von Hochverfügbarkeitslösungen und plattformübergreifender DB-Migration. Die Technologien, an denen derzeit gearbeitet wird, sind SQL Server, PowerShell, Oracle und MongoDB.
Alle Beiträge von Prashanth Jayaram anzeigen

Neueste Beiträge von Prashanth Jayaram (alle anzeigen)
  • Ein kurzer Überblick über die Datenbankprüfung in SQL – 28. Januar 2021
  • Einrichten der Azure-Datensynchronisierung zwischen Azure SQL-Datenbanken und lokalem SQL Server – 20. Januar 2021
  • Ausführen von Import- / Exportvorgängen für Azure SQL-Datenbanken mit PowerShell – 14. Januar , 2021

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.