Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

DATETIMEOFFSETFROMPARTS() Beispiele in SQL Server (T-SQL)

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).