DATETIMEOFFSETFROMPARTS (Transact-SQL)
Gibt einen datetimeoffset-Wert für das angegebene Datum und die angegebene Uhrzeit mit dem angegebenen Offset und der angegebenen Genauigkeit zurück.
Transact-SQL-Syntaxkonventionen
Syntax
DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision )
Argumente
year
Ganzzahliger Ausdruck, der ein Jahr angibt.month
Ganzzahliger Ausdruck, der einen Monat angibt.day
Ganzzahliger Ausdruck, der einen Tag angibt.hour
Ganzzahliger Ausdruck, der die Stunden angibt.minute
Ganzzahliger Ausdruck, der die Minuten angibt.seconds
Ganzzahliger Ausdruck, der die Sekunden angibt.fractions
Ganzzahliger Ausdruck, der die Sekundenbruchteile angibt.hour_offset
Ganzzahliger Ausdruck, der den Stundenteil des Zeitzonenoffsets angibt.minute_offset
Ganzzahliger Ausdruck, der den Minutenteil des Zeitzonenoffsets angibt.precision
Ganzzahliges Literal, das die Genauigkeit des zurückzugebenden datetimeoffset-Werts angibt.
Rückgabetypen
datetimeoffset ( precision )
Hinweise
DATETIMEOFFSETFROMPARTS gibt einen vollständig initialisierten datetimeoffset-Datentyp zurück. Die Offsetargumente werden verwendet, um den Zeitzonenoffset darzustellen. Werden die Offsetargumente nicht angegeben, wird als Zeitzonenoffset 00:00 angenommen, d. h. es gibt keinen Zeitzonenoffset. Wenn die Offsetargumente angegeben werden, dann müssen beide Argumente vorhanden und beide Argumente entweder positiv oder negativ sein. Wenn minute_offset angegeben wird, hour_offset jedoch nicht, wird ein Fehler ausgelöst. Wenn andere Argumente ungültig sind, wird ein Fehler ausgegeben. Wenn erforderliche Argumente den Wert NULL haben, wird NULL zurückgegeben. Wenn jedoch das precision-Argument NULL ist, wird ein Fehler ausgelöst.
Das fractions-Argument ist vom precision-Argument abhängig. Wenn beispielsweise precision den Wert 7 hat, dann stellt jeder Bruchteil 100 Nanosekunden dar. Ist precision jedoch 3, dann stellt jeder Bruchteil eine Millisekunde dar. Wenn der Wert von precision 0 (null) ist, dann muss auch der Wert von fractions 0 (null) sein; andernfalls wird ein Fehler ausgelöst.
Diese Funktion kann remote auf SQL Server 2012-Servern oder höher ausgeführt werden. Eine Remoteausführung auf Servern mit einer Version unter SQL Server 2012 ist nicht möglich.
Beispiele
A.Einfaches Beispiel ohne Sekundenbruchteile
SELECT DATETIMEOFFSETFROMPARTS ( 2010, 12, 31, 14, 23, 23, 0, 12, 0, 7 ) AS Result;
Dies ist das Resultset.
Result
-------------------------------------------
2010-12-07 00:00:00.0000000 +00:00
(1 row(s) affected)
B.Beispiel mit Sekundenbruchteilen
Das folgende Beispiel zeigt die Verwendung der Parameter fractions und precision:
Wenn fractions über den Wert 5 und precision über den Wert 1 verfügt, dann stellt der Wert von fractions 5/10 einer Sekunde dar.
Wenn fractions über den Wert 50 und precision über den Wert 2 verfügt, dann stellt der Wert von fractions 50/100 einer Sekunde dar.
Wenn fractions über den Wert 500 und precision über den Wert 3 verfügt, dann 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
Dies ist das Resultset.
----------------------------------
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)