DATETIME2FROMPARTS (Transact-SQL)
Retorna um valor datetime2 para a data e a hora especificadas e com a precisão especificada.
Convenções da sintaxe Transact-SQL
Aplica-se a: SQL Server (SQL Server 2012 até a versão atual), Banco de dados SQL do Windows Azure (versão inicial até a versão atual). |
Sintaxe
DATETIME2FROMPARTS ( year, month, day, hour, minute, seconds, fractions, precision )
Argumentos
year
Expressão de inteiro que especifica um ano.month
Expressão de inteiro que especifica um mês.day
Expressão de inteiro que especifica um dia.hour
Expressão de inteiro que especifica horas.minute
Expressão de inteiro que especifica minutos.seconds
Expressão de inteiro que especifica segundos.fractions
Expressão de inteiro que especifica frações.precision
Literal de inteiro que especifica a precisão do valor datetime2 a ser retornado.
Tipos de retorno
datetime2 ( precision )
Comentários
DATETIME2FROMPARTS retorna um valor datetime2 completamente inicializado. Se os argumentos não forem válidos, um erro será lançado. Se os argumentos necessários forem nulos, nulo será retornado. Porém, se o argumento precision for nulo, um erro será lançado.
O argumento fractions depende do argumento precision. Por exemplo, se precision for 7, cada fração representará 100 nanosegundos; se precision for 3, cada fração representará um milissegundo. Se o valor de precision for zero, o valor de fractions também deverá ser zero; caso contrário, um erro será lançado.
Essa função é capaz de ser remota para servidores do SQL Server 2014 e acima. Ela não será remota para servidores que têm uma versão anterior ao SQL Server 2014.
Exemplos
A.Exemplo simples sem frações de um segundo
SELECT DATETIME2FROMPARTS ( 2010, 12, 31, 23, 59, 59, 0, 0 ) AS Result;
Aqui está o conjunto de resultados.
Result
---------------------------
2010-12-31 23:59:59.0000000
(1 row(s) affected)
B.Exemplo simples com frações de um segundo
O exemplo a seguir demonstra o uso dos parâmetros fractions e precision:
Quando fractions tiver um valor de 5 e precision tiver um valor de 1, o valor de fractions representará 5/10 de um segundo.
Quando fractions tiver um valor de 50 e precision tiver um valor de 2, o valor de fractions representará 50/100 de um segundo.
Quando fractions tiver um valor de 500 e precision tiver um valor de 3, o valor de fractions representará 500/1000 de um segundo.
SELECT DATETIME2FROMPARTS ( 2011, 8, 15, 14, 23, 44, 5, 1 );
SELECT DATETIME2FROMPARTS ( 2011, 8, 15, 14, 23, 44, 50, 2 );
SELECT DATETIME2FROMPARTS ( 2011, 8, 15, 14, 23, 44, 500, 3 );
GO
Aqui está o conjunto de resultados.
----------------------
2011-08-15 14:23:44.5
(1 row(s) affected)
----------------------
2011-08-15 14:23:44.50
(1 row(s) affected)
----------------------
2011-08-15 14:23:44.500
(1 row(s) affected)