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.