Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

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

In SQL Server, il DATETIME2FROMPARTS() la funzione funziona in modo simile a DATETIMEFROMPARTS() funzione, tranne per il fatto che accetta 8 argomenti e restituisce un datetime2 valore. Il DATETIMEFROMPARTS() funzione d'altra parte, accetta solo 7 argomenti e restituisce un datetime valore.

Fondamentalmente, fornisci tutte le parti di data/ora e questa funzione restituirà un datetime2 valore in base alle parti fornite.

Sintassi

Innanzitutto, ecco la sintassi:

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

Dove ciascuno dei primi 7 argomenti è un'espressione intera che specifica quella parte della data. Ad esempio, year è un numero intero che specifica la parte relativa all'anno della data.

L'ottavo argomento è un'espressione intera che consente di definire la precisione del valore restituito. Questo valore specifica la scala (ovvero il numero di cifre a destra della cifra decimale).

Esempio

Ecco un esempio di utilizzo:

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

Risultato:

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

Valori non validi

Tutti gli argomenti devono essere valori validi. Ad esempio, non puoi specificare un mese di 13 o un valore di minuti di 61.

Ecco un esempio in cui specifico un valore mensile di 13:

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

Risultato:

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

Numero di argomenti

Devi anche fornire il numero corretto di argomenti (8):

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

Risultato:

The datetime2fromparts function requires 8 argument(s).

Valori Nulli

Se fornisci un valore nullo per uno qualsiasi dei primi 7 argomenti, il risultato è NULL:

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

Risultato:

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

Tuttavia, fornendo un valore nullo per l'ottavo argomento (che specifica la precisione/scala) si ottiene un errore:

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

Risultato:

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