El T-SQL TIMEFROMPARTS()
función le permite construir un tiempo valor de las distintas partes del tiempo. También puede especificar la precisión del valor devuelto.
A continuación se muestran ejemplos de cómo funciona esta función.
Sintaxis
La sintaxis es así:
TIMEFROMPARTS ( hour, minute, seconds, fractions, precision )
Donde los primeros 4 argumentos son expresiones enteras que especifican esa parte de tiempo en particular. El quinto argumento es un literal entero que especifica la precisión del tiempo valor a devolver.
Ejemplo
Aquí hay un ejemplo para demostrarlo.
SELECT TIMEFROMPARTS( 23, 35, 29, 1234567, 7 ) AS Result;
Resultado:
+------------------+ | Result | |------------------| | 23:35:29.1234567 | +------------------+
En este caso, especifiqué un valor de precisión de 7.
Para ser más precisos (sin juego de palabras), el argumento de precisión en realidad especifica la escala . Escala es el número de dígitos a la derecha del punto decimal. Precisión es el número total de dígitos.
Argumentos no válidos
Si alguno de los argumentos no es válido, se producirá un error. Ejemplo:
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.
En este caso, proporcioné un minuto argumento de 61
.
Número de argumentos
También se producirá un error si no proporciona el número correcto de argumentos. Ejemplo:
SELECT TIMEFROMPARTS( 23, 35, 29, 7 ) AS Result;
Resultado:
The timefromparts function requires 5 argument(s).
Valores nulos
Si alguno de los primeros 4 argumentos es nulo, el resultado es NULL
:
SELECT TIMEFROMPARTS( 23, 35, NULL, 1234567, 7 ) AS Result;
Resultado:
+----------+ | Result | |----------| | NULL | +----------+
Sin embargo, si el quinto argumento (precisión ) es nulo, se produce un error:
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
Microsoft afirma que TIMEFROMPARTS()
La función puede conectarse de forma remota a servidores SQL Server 2012 (11.x) y versiones posteriores. No puede ser remoto a servidores que tengan una versión anterior a SQL Server 2012 (11.x).
Una función similar
Consulte también los ejemplos de SMALLDATETIMEFROMPARTS() en SQL Server (T-SQL) para obtener un smalldatetime valor en lugar de un tiempo valor.