datetime2 (Transact-SQL)
Definiert ein Datum, das mit einer auf dem 24-Stunden-Format basierenden Uhrzeit kombiniert ist. datetime2 kann als eine Erweiterung des bestehenden datetime-Typs angesehen werden, der einen größeren Datumsbereich, eine höhere Genauigkeit in Bruchteilen und eine optionale vom Benutzer angegebene Genauigkeit besitzt.
Eine Übersicht über alle Datums- und Uhrzeitdatentypen und zugehörigen Funktionen von Transact-SQL finden Sie unter Datums- und Uhrzeitfunktionen (Transact-SQL). Informationen und Beispiele, die für alle Datums- und Uhrzeitdatentypen und zugehörige Funktionen gelten, finden Sie unter Verwenden von Datums- und Zeitdaten.
Beschreibung von datetime2
Eigenschaft |
Wert |
---|---|
Syntax |
datetime2 [ (fractional seconds precision) ] |
Verwendung |
DECLARE @MyDatetime2 datetime2(7) CREATE TABLE Table1 ( Column1 datetime2(7) ) |
Standardmäßiges Format der Zeichenfolgenliterale (wird für Downlevelclients verwendet) |
YYYY-MM-DD hh:mm:ss [.Sekundenbruchteile] Weitere Informationen finden Sie im Abschnitt "Abwärtskompatibilität für Downlevelclients" unter Verwenden von Datums- und Zeitdaten. |
Datumsbereich |
0001-01-01 bis 9999-12-31 1. Januar 1 n. Chr. bis 31. Dezember 9999 n. Chr. |
Zeitbereich |
00:00:00 bis 23:59:59.9999999 |
Zeitzonenoffsetbereich |
Kein |
Elementbereiche |
Bei YYYY handelt es sich um eine vierstellige Zahl im Bereich von 0001 bis 9999, die ein Jahr darstellt. Bei MM handelt es sich um eine zweistellige Zahl im Bereich von 01 bis 12, die im angegebenen Jahr einen Monat darstellt. Bei DD handelt es sich um eine zweistellige Zahl im Bereich von 01 bis 31, die im angegebenen Monat einen Tag darstellt. Bei hh handelt es sich um eine zweistellige Zahl im Bereich von 00 bis 23, die die Stunde darstellt. Bei mm handelt es sich um eine zweistellige Zahl im Bereich von 00 bis 59, die die Minute darstellt. Bei ss handelt es sich um eine zweistellige Zahl im Bereich von 00 bis 59, die die Sekunde darstellt. Bei n* handelt es sich um eine null- bis siebenstellige Zahl von 0 bis 9999999, die die Sekundenbruchteile darstellt. |
Zeichenlänge |
Mindestens 19 Positionen (YYYY-MM-DD hh:mm:ss) bis maximal 27 Positionen (YYYY-MM-DD hh:mm:ss .0000000) |
Genauigkeit, Dezimalstellen |
0 bis 7 Stellen mit einer Genauigkeit von 100 ns. Die Standardgenauigkeit beträgt 7 Stellen. |
Speichergröße |
6 Byte für Genauigkeiten unter 3; 7 Byte für Genauigkeiten von 3 und 4. Alle anderen Genauigkeiten erfordern 8 Byte. |
Genauigkeit |
100 Nanosekunden |
Standardwert |
1900-01-01 00:00:00 |
Kalender |
Gregorianisch |
Benutzerdefinierte Genauigkeit in Sekundenbruchteilen |
Ja |
Beachtung und Beibehaltung des Zeitzonenoffsets |
Nein |
Beachtung der Sommerzeit |
Nein |
Informationen zu Metadaten in Bezug auf den Datentyp finden Sie unter sys.systypes (Transact-SQL) oder unter TYPEPROPERTY (Transact-SQL). Für einige Datums- und Uhrzeitdatentypen sind die Genauigkeit und die Dezimalstellenanzahl variabel. Informationen zum Abrufen der Genauigkeit und der Dezimalstellenanzahl für eine Spalte finden Sie unter COLUMNPROPERTY (Transact-SQL), COL_LENGTH (Transact-SQL) oder sys.columns (Transact-SQL).
Unterstützte Formate der Zeichenfolgenliterale für datetime2
In den folgenden Tabellen werden die unterstützten ISO 8601- und ODBC-Formate für Zeichenfolgenliterale für datetime2 aufgelistet. Informationen zu alphabetischen, numerischen und unstrukturierten Formaten sowie zu Zeitformaten für die Datums- und Uhrzeitteile von datetime2 finden Sie unter date (Transact-SQL) und unter time (Transact-SQL).
ISO 8601 |
Beschreibungen |
---|---|
YYYY-MM-DDThh:mm:ss[.nnnnnnn] YYYY-MM-DDThh:mm:ss[.nnnnnnn] |
Dieses Format wird nicht von den SET LANGUAGE- und SET DATEFORMAT-Gebietsschemaeinstellungen für Sitzungen beeinflusst. Das T, die Doppelpunkte (:) und der Punkt (.) werden in das Zeichenfolgenliteral eingeschlossen, z. B. "2007-05-02T19:58:47.1234567". |
ODBC |
Beschreibung |
---|---|
{ ts 'yyyy-mm-dd hh:mm:ss[.Sekundenbruchteile]' } |
ODBC-API-spezifisch:
|
Kompatibilität mit ANSI und ISO 8601
Die Kompatibilität mit ANSI und ISO 8601 von date und time gilt auch für datetime2.
Beispiele
Im folgenden Beispiel werden die Ergebnisse der Umwandlung von einer Zeichenfolge in alle date-Datentypen und time-Datentypen verglichen.
SELECT
CAST('2007-05-08 12:35:29. 1234567 +12:15' AS time(7)) AS 'time'
,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS date) AS 'date'
,CAST('2007-05-08 12:35:29.123' AS smalldatetime) AS
'smalldatetime'
,CAST('2007-05-08 12:35:29.123' AS datetime) AS 'datetime'
,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS datetime2(7)) AS
'datetime2'
,CAST('2007-05-08 12:35:29.1234567 +12:15' AS datetimeoffset(7)) AS
'datetimeoffset';
Dies ist das Resultset.
Datentyp |
Ausgabe |
---|---|
time |
12:35:29. 1234567 |
date |
2007-05-08 |
smalldatetime |
2007-05-08 12:35:00 |
datetime |
2007-05-08 12:35:29.123 |
datetime2 |
2007-05-08 12:35:29. 1234567 |
datetimeoffset |
2007-05-08 12:35:29.1234567 +12:15 |
Siehe auch