Datums- und Uhrzeitdatentypen und zugehörige Funktionen (Transact-SQL)

Gilt für:yes SQL Server (alle unterstützten Versionen) YesAzure SQL-Datenbank YesAzure SQL verwaltete Instanz yesAzure Synapse Analytics

In den Abschnitten in diesem Thema werden alle Datums- und Uhrzeitdatentypen und -funktionen von Transact-SQL behandelt.

Datums- und Uhrzeitdatentypen

Die Datums- und Uhrzeitdatentypen transact-SQL sind in der folgenden Tabelle aufgeführt:

Datentyp Format Bereich Genauigkeit Speichergröße (Bytes) Benutzerdefinierte Genauigkeit in Sekundenbruchteilen Zeitzonenoffset
time hh:mm:ss[.nnnnnnn] 00:00:00.0000000 bis 23:59:59.9999999 100 Nanosekunden 3 bis 5 Ja Nein
date JJJJ-MM-TT 0001-01-01 bis 9999-12-31 1 Tag 3 Nein Nein
smalldatetime YYYY-MM-DD hh:mm:ss 1900-01-01 bis 2079-06-06 1 Minute 4 Nein Nein
datetime YYYY-MM-DD hh:mm:ss[.nnn] 1753-01-01 bis 9999-12-31 0,00333 Sekunden 8 Nein Nein
datetime2 YYYY-MM-DD hh:mm:ss[.nnnnnnn] 0001-01-01 00:00:00.0000000 bis 9999-12-31 23:59:59.9999999 100 Nanosekunden 6 bis 8 Ja Nein
datetimeoffset YYYY-MM-DD hh:mm:ss[.nnnnnnn] [+|-]hh:mm 0001-01-01 00:00:00.0000000 bis 9999-12-31 23:59:59.9999999 (in UTC) 100 Nanosekunden 8 bis 10 Ja Ja

Hinweis

Der Transact-SQL rowversion-Datentyp ist kein Datums- oder Uhrzeitdatentyp. timestamp ist ein veraltetes Synonym für rowversion.

Datums- und Uhrzeitfunktionen

In den folgenden Tabellen sind die Transact-SQL Datums- und Uhrzeitfunktionen aufgeführt. Weitere Informationen zu deterministischen Funktionen finden Sie unter Deterministische und nichtdeterministische Funktionen.

Funktion, die Systemdatums- und Systemzeitwerte zurückgibt

Transact-SQL leitet alle Systemdatums- und -uhrzeitwerte vom Betriebssystem des Computers ab, auf dem die Instanz von SQL Server ausgeführt wird.

Systemdatums- und Systemuhrzeitfunktionen mit höherer Genauigkeit

SQL Server 2019 (15.x) leitet die Datums- und Uhrzeitwerte mithilfe der GetSystemTimeAsFileTime()-Windows-API ab. Die Genauigkeit hängt von der Computerhardware und der Version von Windows ab, auf denen die Instanz von SQL Server ausgeführt wird. Die Genauigkeit dieser API ist auf 100 Nanosekunden festgelegt. Die Genauigkeit kann mithilfe der GetSystemTimeAdjustment()-Windows-API festgestellt werden.

Funktion Syntax Rückgabewert Rückgabedatentyp Determinismus
SYSDATETIME SYSDATETIME () Gibt einen datetime2(7)-Wert zurück, der das Datum und die Uhrzeit des Computers enthält, auf dem die Instanz von SQL Server ausgeführt wird. Der zurückgegebene Wert umfasst nicht den Zeitzonenoffset. datetime2(7) Nicht deterministisch
SYSDATETIMEOFFSET SYSDATETIMEOFFSET ( ) Gibt einen datetimeoffset(7)-Wert zurück, der das Datum und die Uhrzeit des Computers enthält, auf dem die Instanz von SQL Server ausgeführt wird. Der zurückgegebene Wert umfasst den Zeitzonenoffset. datetimeoffset(7) Nicht deterministisch
SYSUTCDATETIME SYSUTCDATETIME ( ) Gibt einen datetime2(7)-Wert zurück, der das Datum und die Uhrzeit des Computers enthält, auf dem die Instanz von SQL Server ausgeführt wird. Die Funktion gibt das Datum und die Uhrzeit als koordinierte Weltzeit (UTC) zurück. datetime2(7) Nicht deterministisch

Systemdatums- und Systemuhrzeitfunktionen mit geringerer Genauigkeit

Funktion Syntax Rückgabewert Rückgabedatentyp Determinismus
CURRENT_TIMESTAMP CURRENT_TIMESTAMP Gibt einen datetime-Wert zurück, der das Datum und die Uhrzeit des Computers enthält, auf dem die Instanz von SQL Server ausgeführt wird. Der zurückgegebene Wert umfasst nicht den Zeitzonenoffset. datetime Nicht deterministisch
GETDATE GETDATE ( ) Gibt einen datetime-Wert zurück, der das Datum und die Uhrzeit des Computers enthält, auf dem die Instanz von SQL Server ausgeführt wird. Der zurückgegebene Wert umfasst nicht den Zeitzonenoffset. datetime Nicht deterministisch
GETUTCDATE GETUTCDATE ( ) Gibt einen datetime-Wert zurück, der das Datum und die Uhrzeit des Computers enthält, auf dem die Instanz von SQL Server ausgeführt wird. Die Funktion gibt das Datum und die Uhrzeit als koordinierte Weltzeit (UTC) zurück. datetime Nicht deterministisch

Funktionen, die Systemdatums- und Systemzeitwerte zurückgeben

Funktion Syntax Rückgabewert Rückgabedatentyp Determinismus
DATENAME DATENAME ( datepart , date ) Gibt eine Zeichenfolge zurück, die den angegebenen datepart-Wert des angegebenen „date“-Werts darstellt. nvarchar Nicht deterministisch
DATEPART DATEPART ( datepart , date ) Gibt eine ganze Zahl zurück, die den angegebenen datepart-Wert des angegebenen date-Werts darstellt. int Nicht deterministisch
DAY DAY ( date ) Gibt eine ganze Zahl zurück, die den Tagesteil des angegebenen date-Werts darstellt. int Deterministic
MONTH MONTH ( date ) Gibt eine ganze Zahl zurück, die den Monatsteil des angegebenen date-Werts zurückgibt. int Deterministic
YEAR YEAR ( date ) Gibt eine ganze Zahl zurück, die den Jahresteil des angegebenen date-Werts darstellt. int Deterministic

Funktionen, die Systemdatums- und Systemzeitwerte aus ihren Teilen zurückgeben

Funktion Syntax Rückgabewert Rückgabedatentyp Determinismus
DATEFROMPARTS DATEFROMPARTS (year, month, day) Gibt einen date-Wert für das angegebene Jahr, den Monat und den Tag zurück. date Deterministic
DATETIME2FROMPARTS DATETIME2FROMPARTS (year, month, day, hour, minute, seconds, fractions, precision) Gibt einen datetime2-Wert für das angegebene Datum und die angegebene Uhrzeit mit der angegebenen Genauigkeit zurück. datetime2 (Genauigkeit) Deterministic
DATETIMEFROMPARTS DATETIMEFROMPARTS (year, month, day, hour, minute, seconds, milliseconds) Gibt einen datetime-Wert für das angegebene Datum und die Uhrzeit zurück. datetime Deterministic
DATETIMEOFFSETFROMPARTS DATETIMEOFFSETFROMPARTS (year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision) Gibt einen datetimeoffset-Wert für das angegebene Datum und die angegebene Uhrzeit mit dem angegebenen Offset und der angegebenen Genauigkeit zurück. datetimeoffset(Genauigkeit) Deterministic
SMALLDATETIMEFROMPARTS SMALLDATETIMEFROMPARTS ( year, month, day, hour, minute) Gibt einen smalldatetime-Wert für das angegebene Datum und die Uhrzeit zurück. smalldatetime Deterministic
TIMEFROMPARTS TIMEFROMPARTS (hour, minute, seconds, fractions, precision) Gibt einen time-Wert für die angegebene Uhrzeit mit der angegebenen Genauigkeit zurück. time(Genauigkeit) Deterministisch

Funktionen, die Datums- und Uhrzeitunterschiede zurückgeben

Funktion Syntax Rückgabewert Rückgabedatentyp Determinismus
DATEDIFF DATEDIFF ( datepart , startdate , enddate ) Gibt die Anzahl der Datums- oder Zeitbegrenzungen von datepart zurück, die zwischen zwei angegebenen Daten überschritten wurden. int Deterministic
DATEDIFF_BIG DATEDIFF_BIG ( datepart , startdate , enddate ) Gibt die Anzahl der Datums- oder Zeitbegrenzungen von datepart zurück, die zwischen zwei angegebenen Daten überschritten wurden. bigint Deterministic

Funktionen, die Datums- und Uhrzeitwerte ändern

Funktion Syntax Rückgabewert Rückgabedatentyp Determinismus
DATEADD DATEADD (datepart , number , date ) Gibt einen neuen datetime-Wert zurück. Dazu wird dem angegebenen datepart-Wert des angegebenen date-Werts ein Intervall hinzugefügt. Der Datentyp des date-Arguments Deterministic
EOMONTH EOMONTH (start_date [, month_to_add]) Gibt den letzten Tag des Monats zurück, der das angegebene Datum enthält, mit einem optionalen Offset. Der Rückgabetyp ist der Typ des start_date-Arguments oder alternativ der date-Datentyp. Deterministic
SWITCHOFFSET SWITCHOFFSET (DATETIMEOFFSET , time_zone) SWITCHOFFSET ändert den Zeitzonenoffset eines DATETIMEOFFSET-Werts und behält den UTC-Wert bei. datetimeoffset mit der Genauigkeit von Bruchteilen von DATETIMEOFFSET Deterministic
TODATETIMEOFFSET TODATETIMEOFFSET (expression , time_zone) TODATETIMEOFFSET wandelt einen datetime2-Wert in einen datetimeoffset-Wert um. TODATETIMEOFFSET interpretiert den „datetime2“-Wert für die angegebene „time_zone“ in Ortszeit. datetimeoffset mit der Genauigkeit von Bruchteilen des datetime-Arguments Deterministic

Funktionen, die Sitzungsformatfunktionen festlegen oder zurückgeben

Funktion Syntax Rückgabewert Rückgabedatentyp Determinismus
@@DATEFIRST @@DATEFIRST Gibt den für die Sitzung aktuellen Wert von SET DATEFIRST zurück. tinyint Nicht deterministisch
SET DATEFIRST SET DATEFIRST { number@@ } Legt den ersten Wochentag auf eine Zahl von 1 bis 7 fest. Nicht zutreffend Nicht zutreffend
SET DATEFORMAT SET DATEFORMAT { format@@ } Legt die Reihenfolge der Datumsbestandteile (Tag, Monat, Jahr) für die Eingabe von datetime- oder smalldatetime-Daten fest. Nicht zutreffend Nicht verfügbar
@@LANGUAGE @@LANGUAGE Gibt den Namen der derzeit verwendeten Sprache zurück. @@ LANGUAGE ist keine Datums- oder Uhrzeitfunktion. Die Spracheinstellung kann sich jedoch auf die Ausgabe von Datumsfunktionen auswirken. Nicht zutreffend Nicht zutreffend
SET LANGUAGE SET LANGUAGE { [ N ] 'language'language_var } Legt die Sprachumgebung für die Sitzung und die Systemmeldungen fest. SET LANGUAGE ist keine Datums- oder Uhrzeitfunktion. Die Spracheinstellung wirkt sich jedoch auf die Ausgabe von Datumsfunktionen aus. Nicht zutreffend Nicht zutreffend
sp_helplanguage sp_helplanguage [ [ @language = ] 'Sprache' ] Gibt Informationen den Datumsformaten aller unterstützten Sprachen zurück. sp_helplanguage ist keine gespeicherte Prozedur für Datum oder Uhrzeit. Die Spracheinstellung wirkt sich jedoch auf die Ausgabe von Datumsfunktionen aus. Nicht zutreffend Nicht verfügbar

Funktionen, die Datums- und Uhrzeitwerte überprüfen

Funktion Syntax Rückgabewert Rückgabedatentyp Determinismus
ISDATE ISDATE ( expression ) Bestimmt, ob ein datetime- oder smalldatetime-Eingabeausdruck ein gültiger Datums- oder Uhrzeitwert ist. int ISDATE ist nur deterministisch bei Verwendung mit der CONVERT-Funktion, wenn der style-Parameter von CONVERT angegeben wird und „style“ nicht den Wert 0, 100, 9 oder 109 aufweist.

Datums- und uhrzeitbezogene Themen

Thema Beschreibung
FORMAT Gibt einen mit dem angegebenen Format und der optionalen Kultur formatierten Wert zurück. Verwenden Sie die FORMAT-Funktion für die gebietsschemabasierte Formatierung von Datums-/Uhrzeitwerten sowie numerischen Werten als Zeichenfolgen.
CAST und CONVERT (Transact-SQL) Stellt Informationen zur Konvertierung von Datums- und Uhrzeitwerten in und aus Zeichenfolgenliteralen und anderen Datums- und Uhrzeitformaten bereit.
Schreiben internationaler Transact-SQL-Anweisungen Enthält Richtlinien für die Portabilität von Datenbanken und Datenbankanwendungen, die Transact-SQL-Anweisungen von einer Sprache in eine andere verwenden oder mehrere Sprachen unterstützen.
ODBC-Skalarfunktionen (Transact-SQL) Stellt Informationen zu ODBC-Skalarfunktionen bereit, die in Transact-SQL verwendet werden können. Dies schließt ODBC-Datums- und -Uhrzeitfunktionen ein.
AT TIME ZONE (Transact-SQL) Stellt den Zeitzonenwechsel zur Verfügung.

Siehe auch