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

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

Il T-SQL TIMEFROMPARTS() la funzione ti consente di costruire un tempo valore dalle varie parti temporali. Puoi anche specificare la precisione del valore restituito.

Di seguito sono riportati esempi di come funziona questa funzione.

Sintassi

La sintassi è questa:

TIMEFROMPARTS ( hour, minute, seconds, fractions, precision )

Dove i primi 4 argomenti sono espressioni intere che specificano quella particolare parte temporale. Il quinto argomento è un valore letterale intero che specifica la precisione del tempo valore da restituire.

Esempio

Ecco un esempio da dimostrare.

SELECT TIMEFROMPARTS( 23, 35, 29, 1234567, 7 ) AS Result;

Risultato:

+------------------+
| Result           |
|------------------|
| 23:35:29.1234567 |
+------------------+

In questo caso, ho specificato un valore di precisione di 7.

Per essere più precisi (nessun gioco di parole), l'argomento precision specifica effettivamente la scala . Scala è il numero di cifre a destra della virgola decimale. Precisione è il numero totale di cifre.

Argomenti non validi

Se uno qualsiasi degli argomenti non è valido, si verificherà un errore. Esempio:

SELECT TIMEFROMPARTS( 23, 35, 61, 1234567, 7 ) AS Result;

Risultato:

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

In questo caso, ho fornito un minuto argomento di 61 .

Numero di argomenti

Si verificherà un errore anche se non si fornisce il numero corretto di argomenti. Esempio:

SELECT TIMEFROMPARTS( 23, 35, 29, 7 ) AS Result;

Risultato:

The timefromparts function requires 5 argument(s).

Valori Nulli

Se uno dei primi 4 argomenti è nullo, il risultato è NULL :

SELECT TIMEFROMPARTS( 23, 35, NULL, 1234567, 7 ) AS Result;

Risultato:

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

Tuttavia, se il 5° argomento (precision ) è nullo, si verifica un errore:

SELECT TIMEFROMPARTS( 23, 35, 29, 1234567, NULL ) AS Result;

Risultato:

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

Remote

Microsoft afferma che il TIMEFROMPARTS() la funzione può essere remotata su server SQL Server 2012 (11.x) e versioni successive. Non può essere remotato su server con una versione precedente a SQL Server 2012 (11.x).

Una funzione simile

Controlla anche SMALLDATETIMEFROMPARTS() Esempi in SQL Server (T-SQL) per ottenere un smalldatetime valore invece di un tempo valore.