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

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

In SQL Server die DATETIME2FROMPARTS() funktioniert ähnlich wie die DATETIMEFROMPARTS() Funktion, außer dass sie 8 Argumente akzeptiert und ein datetime2 zurückgibt Wert. Der DATETIMEFROMPARTS() dagegen akzeptiert nur 7 Argumente und gibt ein datetime zurück Wert.

Grundsätzlich geben Sie alle Datums-/Uhrzeitteile an und diese Funktion gibt ein datetime2 zurück Wert basierend auf den von Ihnen bereitgestellten Teilen.

Syntax

Hier ist zunächst die Syntax:

DATETIME2FROMPARTS ( year, month, day, hour, minute, seconds, fractions, precision )

Wobei jedes der ersten 7 Argumente ein ganzzahliger Ausdruck ist, der diesen Teil des Datums angibt. Beispiel:year ist eine Ganzzahl, die den Jahresteil des Datums angibt.

Das 8. Argument ist ein ganzzahliger Ausdruck, mit dem Sie die Genauigkeit des Rückgabewerts definieren können. Dieser Wert gibt die Skalierung an (d. h. die Anzahl der Ziffern rechts von der Dezimalstelle).

Beispiel

Hier ist ein Verwendungsbeispiel:

SELECT DATETIME2FROMPARTS( 2021, 05, 10, 23, 35, 29, 500, 4 ) AS Result;

Ergebnis:

+--------------------------+
| Result                   |
|--------------------------|
| 2021-05-10 23:35:29.0500 |
+--------------------------+

Ungültige Werte

Alle Argumente müssen gültige Werte sein. Sie können beispielsweise keinen Monat von 13 oder einen Minutenwert von 61 angeben.

Hier ist ein Beispiel, in dem ich einen Monatswert von 13 festlege:

SELECT DATETIME2FROMPARTS( 2021, 13, 10, 23, 35, 29, 500, 4 ) AS Result;

Ergebnis:

Cannot construct data type datetime2, some of the arguments have values which are not valid.

Anzahl der Argumente

Sie müssen auch die richtige Anzahl von Argumenten angeben (8):

SELECT DATETIME2FROMPARTS( 2021, 05, 10 ) AS Result;

Ergebnis:

The datetime2fromparts function requires 8 argument(s).

Nullwerte

Wenn Sie für eines der ersten 7 Argumente einen Nullwert angeben, ist das Ergebnis NULL:

SELECT DATETIME2FROMPARTS( 2021, 05, 10, NULL, 35, 29, 500, 4 ) AS Result;

Ergebnis:

+----------+
| Result   |
|----------|
| NULL     |
+----------+

Die Bereitstellung eines Nullwerts für das 8. Argument (das die Genauigkeit/Skalierung angibt) führt jedoch zu einem Fehler:

SELECT DATETIME2FROMPARTS( 2021, 05, 10, 23, 35, 29, 500, NULL ) AS Result;

Ergebnis:

Scale argument is not valid. Valid expressions for data type datetime2 scale argument are integer constants and integer constant expressions.