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

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse Analytics

Die Abschnitte in diesem Artikel enthalten sämtliche Datums- und Uhrzeitdatentypen und zugehörige Funktionen für Transact-SQL.

Datums- und Uhrzeitdatentypen

In der folgenden Tabelle werden die Datums- und Uhrzeitdatentypen von Transact-SQL aufgelistet:

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-Datentyp rowversion ist kein Datums- oder Uhrzeitdatentyp. timestamp ist ein veraltetes Synonym für rowversion.

Datums- und Uhrzeitfunktionen

In den folgenden Tabellen werden die Datums- und Uhrzeitfunktionen von Transact-SQL aufgelistet. Weitere Informationen zu deterministischen Funktionen finden Sie unter Deterministische und nichtdeterministische Funktionen.

Funktionen, die Systemdatums- und -uhrzeitwerte zurückgeben

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

Systemdatums- und -uhrzeitfunktionen mit höherer Genauigkeit

Seit SQL Server 2008 (10.0.x) ruft die Datenbank-Engine Datums- und Zeitwerte über die GetSystemTimeAsFileTime()-Windows-API ab. Die Genauigkeit hängt von der Computerhardware und der Windows-Version ab, unter der die SQL Server-Instanz 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 Wert vom Typ datetime2(7) zurück, der das Datum und die Uhrzeit des Computers enthält, auf dem die SQL Server-Instanz ausgeführt wird. Der zurückgegebene Wert umfasst nicht den Zeitzonenoffset. datetime2(7) Nicht deterministisch
SYSDATETIMEOFFSET SYSDATETIMEOFFSET ( ) Gibt einen Wert vom Typ datetimeoffset(7) zurück, der das Datum und die Uhrzeit des Computers enthält, auf dem die SQL Server-Instanz ausgeführt wird. Der zurückgegebene Wert umfasst den Zeitzonenoffset. datetimeoffset(7) Nicht deterministisch
SYSUTCDATETIME SYSUTCDATETIME ( ) Gibt einen Wert vom Typ datetime2(7) zurück, der das Datum und die Uhrzeit des Computers enthält, auf dem die SQL Server-Instanz ausgeführt wird. Die Funktion gibt das Datum und die Uhrzeit als koordinierte Weltzeit (UTC) zurück. datetime2(7) Nicht deterministisch

Systemdatums- und -uhrzeitfunktionen mit geringerer Genauigkeit

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

Funktionen, die Datums- und Uhrzeitkomponenten zurückgeben

Funktion Syntax Rückgabewert Rückgabedatentyp Determinismus
DATE_BUCKET DATE_BUCKET (datepart, number, date, origin) Gibt einen Wert zurück, der dem Anfang jedes datetime-Buckets entspricht, beginnend beim Zeitstempel, der durch den origin-Parameter oder den origin-Standardwert von 1900-01-01 00:00:00.000 definiert wird, wenn der origin-Parameter nicht angegeben ist. Der Rückgabetyp hängt von dem Argument ab, das für date angegeben wird. Nicht deterministisch
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
DATETRUNC DATETRUNC ( datepart, date ) Gibt ein Eingabedatum (date) zurück, das an einem angegebenen Datumsteil (datepart) abgeschnitten ist. Der Rückgabetyp hängt von dem Argument ab, das für date angegeben wird. 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 Datums- und Uhrzeitwerte aus ihren Komponenten 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) Deterministic

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 | @number_var } Legt den ersten Wochentag auf eine Zahl von 1 bis 7 fest. Nicht zutreffend Nicht zutreffend
SET DATEFORMAT SET DATEFORMAT { format | @format_var } Legt die Reihenfolge der Datumsbestandteile (Tag, Monat, Jahr) für die Eingabe von datetime- oder smalldatetime-Daten fest. Nicht zutreffend Nicht zutreffend
@@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 = ] 'language' ] 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.

Artikel zum Thema Datum und Uhrzeit

Artikel 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 Stellt Richtlinien für die sprachübergreifende Portabilität von Datenbanken und Datenbankanwendungen bereit, die Transact-SQL-Anweisungen verwenden bzw. mehrere Sprachen unterstützen.
ODBC-Skalarfunktionen (Transact-SQL) Stellt Informationen zu ODBC-Skalarfunktionen bereit, die in Transact-SQL-Anweisungen 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