DATETIMEOFFSETFROMPARTS (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Gibt einen datetimeoffset-Wert für die angegebenen Argumente für Datum und Zeit zurück. Die Genauigkeit des Rückgabewerts wird vom precision-Argument angegeben, und Offsets werden von den Offsetargumenten bestimmt.
Transact-SQL-Syntaxkonventionen
Syntax
DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision )
Argumente
year
Ein ganzzahliger Ausdruck, der ein Jahr angibt.
month
Ein ganzzahliger Ausdruck, der einen Monat angibt.
day
Ein ganzzahliger Ausdruck, der einen Tag angibt.
hour
Ein ganzzahliger Ausdruck, der die Stunden angibt.
minute
Ein ganzzahliger Ausdruck, der die Minuten angibt.
Sekunden
Ein ganzzahliger Ausdruck, der die Sekunden angibt.
fractions
Ein ganzzahliger Ausdruck, der einen Wert für Sekundenbruchteile angibt.
hour_offset
Ein ganzzahliger Ausdruck, der den Stundenteil des Zeitzonenoffsets angibt.
minute_offset
Ein ganzzahliger Ausdruck, der den Minutenteil des Zeitzonenoffsets angibt.
precision
Ein ganzzahliger literaler Wert, der die Genauigkeit des datetimeoffset-Werts angibt, der von DATETIMEOFFSETFROMPARTS
zurückgegeben wird.
Rückgabetypen
datetimeoffset( Genauigkeit )
Hinweise
DATETIMEOFFSETFROMPARTS
gibt einen vollständig initialisierten datetimeoffset-Datentyp zurück. Die Offsetargumente stellen den Zeitzonenoffset dar. Bei ausgelassenen Offsetargumenten geht DATETIMEOFFSETFROMPARTS
von einem Zeitzonenoffset von 00:00
(also kein Zeitzonenoffset) aus. Bei angegebenen Offsetargumenten erwartet DATETIMEOFFSETFROMPARTS
Werte für beide Argumente, und beide Werte müssen entweder positiv oder negativ sein. Wenn minute_offset einen Wert und hour_offset keinen Wert aufweist, löst DATETIMEOFFSETFROMPARTS
einen Fehler aus. DATETIMEOFFSETFROMPARTS
löst einen Fehler aus, wenn andere Argumente über ungültige Werte verfügen. Wenn mindestens ein erforderliches Argument über einen NULL
-Wert verfügt, dann gibt DATETIMEOFFSETFROMPARTS
NULL
zurück. Wenn das precision-Argument jedoch einen NULL
-Wert enthält, löst DATETIMEOFFSETFROMPARTS
einen Fehler aus.
Das fractions-Argument ist vom precision-Argument abhängig. Wenn „precision“ beispielsweise den Wert 7 aufweist, stellt jeder Bruchteil 100 Nanosekunden dar. Wenn „precision“ jedoch den Wert 3 aufweist, stellt jeder Bruchteil eine Millisekunde dar. Wenn der Wert von „precision“ 0 (null) ist, muss auch der Wert von „fractions“ 0 (null) sein; andernfalls löst DATETIMEOFFSETFROMPARTS
einen Fehler aus.
Diese Funktion kann remote auf SQL Server 2012 (11.x)-Servern oder höher ausgeführt werden. Eine Remoteausführung auf Servern mit einer Version vor SQL Server 2012 (11.x) ist nicht möglich.
Beispiele
A. Ein Beispiel ohne Sekundenbruchteile
SELECT DATETIMEOFFSETFROMPARTS ( 2010, 12, 31, 14, 23, 23, 0, 12, 0, 7 ) AS Result;
Hier sehen Sie das Ergebnis.
Result
----------------------------------
2010-12-31 14:23:23.0000000 +12:00
(1 row(s) affected)
B. Beispiel mit Sekundenbruchteilen
Dieses Beispiel zeigt die Verwendung der Parameter fractions und precision:
Wenn fractions den Wert 5 und precision den Wert 1 hat, stellt der Wert von fractions 5/10 einer Sekunde dar.
Wenn fractions den Wert 50 und precision den Wert 2 hat, stellt der Wert von fractions 50/100 einer Sekunde dar.
Wenn fractions den Wert 500 und precision den Wert 3 hat, stellt der Wert von fractions 500/1000 einer Sekunde dar.
SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 5, 12, 30, 1 );
SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 50, 12, 30, 2 );
SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 500, 12, 30, 3 );
GO
Hier sehen Sie das Ergebnis.
----------------------------------
2011-08-15 14:30:00.5 +12:30
(1 row(s) affected)
----------------------------------
2011-08-15 14:30:00.50 +12:30
(1 row(s) affected)
----------------------------------
2011-08-15 14:30:00.500 +12:30
(1 row(s) affected)