T-SQL hat eine Funktion namens DATETIMEOFFSETFROMPARTS()
damit können Sie einen datetimeoffset erhalten Wert aus den verschiedenen Teilen eines Datums. Insbesondere wird ein datetimeoffset zurückgegeben Wert für das angegebene Datum und die angegebene Uhrzeit und mit den angegebenen Offsets und der angegebenen Genauigkeit.
Beispiele für diese Funktion unten.
Syntax
Die Syntax lautet wie folgt:
DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision )
Wo:
- Die ersten 7 Argumente sind ganzzahlige Ausdrücke, die diesen bestimmten Datums-/Uhrzeitteil angeben.
- Der
hour_offset
Das Argument ist ein ganzzahliger Ausdruck, der den Stundenteil des Zeitzonen-Offsets angibt. - Der
minute_offset
ist ein ganzzahliger Ausdruck, der den Minutenteil des Zeitzonen-Offsets angibt. - Die
precision
Das Argument ist ein ganzzahliges Literal, das die Genauigkeit des datetimeoffset angibt zurückzugebender Wert. Dieser Wert gibt eigentlich die Skalierung an (d. h. die Anzahl der Ziffern rechts von der Dezimalstelle).
Beispiel
Hier ist ein Anwendungsbeispiel.
SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, 23, 35, 29, 500, 12, 30, 4 ) AS Result;
Ergebnis:
Result ---------------------------------- 2021-05-10 23:35:29.0500 +12:30
Ungültige Argumente
Sie müssen sicherstellen, dass alle Argumente gültig sind, sonst erhalten Sie einen Fehler. Hier ist ein Beispiel für die Bereitstellung eines Stundenteils außerhalb des Bereichs (25). Der Stundenteil darf nur zwischen 0 und 24 liegen.
SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, 25, 35, 29, 500, 12, 30, 4 ) AS Result;
Ergebnis:
Cannot construct data type datetimeoffset, some of the arguments have values which are not valid.
Anzahl der Argumente
Sie müssen die richtige Anzahl von Argumenten angeben (10). Andernfalls erhalten Sie eine Fehlermeldung.
SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10 ) AS Result;
Ergebnis:
The datetimeoffsetfromparts function requires 10 argument(s).
Null-Argumente
Wenn eines der ersten 9 Argumente null ist, ist das Ergebnis NULL
:
SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, NULL, 35, 29, 500, 12, 30, 4 ) AS Result;
Ergebnis:
Result ---------------------------------- NULL
Wenn jedoch das letzte (Präzisions-)Argument null ist, wird ein Fehler zurückgegeben:
SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, 23, 35, 29, 500, 12, 30, NULL ) AS Result;
Ergebnis:
Scale argument is not valid. Valid expressions for data type datetimeoffset scale argument are integer constants and integer constant expressions.
Siehe auch DATETIME2FROMPARTS()-Beispiele in SQL Server (T-SQL) zum Zurückgeben eines datetime2 Wert (ohne Offset).