O T-SQL
TIMEFROMPARTS()
A função permite que você crie um tempo valor das várias partes do tempo. Você também pode especificar a precisão do valor de retorno. Abaixo estão exemplos de como esta função funciona.
Sintaxe
A sintaxe fica assim:
TIMEFROMPARTS ( hour, minute, seconds, fractions, precision )
Onde os primeiros 4 argumentos são expressões inteiras que especificam essa parte de tempo específica. O quinto argumento é um literal inteiro que especifica a precisão do tempo valor a ser devolvido.
Exemplo
Aqui está um exemplo para demonstrar.
SELECT TIMEFROMPARTS( 23, 35, 29, 1234567, 7 ) AS Result;
Resultado:
+------------------+ | Result | |------------------| | 23:35:29.1234567 | +------------------+
Nesse caso, especifiquei um valor de precisão de 7.
Para ser mais preciso (sem trocadilhos), o argumento de precisão na verdade especifica a escala . Escala é o número de dígitos à direita da vírgula. Precisão é o número total de dígitos.
Argumentos inválidos
Se algum dos argumentos for inválido, ocorrerá um erro. Exemplo:
SELECT TIMEFROMPARTS( 23, 35, 61, 1234567, 7 ) AS Result;
Resultado:
Cannot construct data type time, some of the arguments have values which are not valid.
Nesse caso, forneci um minuto argumento de
61
. Número de argumentos
Um erro também ocorrerá se você não fornecer o número correto de argumentos. Exemplo:
SELECT TIMEFROMPARTS( 23, 35, 29, 7 ) AS Result;
Resultado:
The timefromparts function requires 5 argument(s).
Valores nulos
Se algum dos 4 primeiros argumentos for nulo, o resultado será
NULL
:SELECT TIMEFROMPARTS( 23, 35, NULL, 1234567, 7 ) AS Result;
Resultado:
+----------+ | Result | |----------| | NULL | +----------+
No entanto, se o 5º argumento (precisão ) for nulo, ocorrerá um erro:
SELECT TIMEFROMPARTS( 23, 35, 29, 1234567, NULL ) AS Result;
Resultado:
Scale argument is not valid. Valid expressions for data type time scale argument are integer constants and integer constant expressions.
Remoto
A Microsoft afirma que o
TIMEFROMPARTS()
A função pode ser remota para servidores SQL Server 2012 (11.x) e superior. Ele não pode ser remoto para servidores que tenham uma versão anterior ao SQL Server 2012 (11.x). Uma função semelhante
Confira também exemplos de SMALLDATETIMEFROMPARTS() no SQL Server (T-SQL) para obter um smalldatetime valor em vez de um tempo valor.