DATETIME2FROMPARTS (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics Analytics Platform System (PDW)

Essa função retorna um valor datetime2 para os argumentos de data e hora especificados. O valor retornado tem uma precisão especificada pelo argumento precision.

Convenções de sintaxe de Transact-SQL

Sintaxe

DATETIME2FROMPARTS ( year, month, day, hour, minute, seconds, fractions, precision )  

Argumentos

year
Uma expressão de inteiro que especifica um ano.

month
Uma expressão de inteiro que especifica um mês.

day
Uma expressão de inteiro que especifica um dia.

hour
Uma expressão de inteiro que especifica as horas.

minute
Uma expressão de inteiro que especifica os minutos.

segundos
Uma expressão de inteiro que especifica os segundos.

fractions
Uma expressão de inteiro que especifica um valor de segundos fracionário.

precisão
Uma expressão de inteiro que especifica a precisão do valor datetime2 que será retornado por DATETIME2FROMPARTS.

Tipos de retorno

datetime2( precision )

Comentários

DATETIME2FROMPARTS retorna um valor datetime2 completamente inicializado. DATETIME2FROMPARTS gerará um erro se pelo menos um argumento necessário tiver um valor inválido. DATETIME2FROMPARTS retornará nulo se pelo menos um argumento necessário tiver um valor nulo. No entanto, se o argumento precision tiver um valor nulo, DATETIME2FROMPARTS gerará um erro.

O argumento fractions depende do argumento precision. Por exemplo, para um valor de precision igual a 7, cada fração representará 100 nanossegundos; se precision for igual a 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, DATETIME2FROMPARTS gerará um erro.

Essa função é capaz de ser remota para servidores do SQL Server 2012 (11.x) e acima. Ela não é remota para servidores que têm uma versão anterior ao SQL Server 2012 (11.x).

Exemplos

a. Um exemplo sem frações de um segundo

SELECT DATETIME2FROMPARTS ( 2010, 12, 31, 23, 59, 59, 0, 0 ) AS Result;  

Veja a seguir 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

Este exemplo demonstra o uso dos parâmetros fractions e precision:

  1. Quando fractions tem um valor igual a 5 e precision tem um valor igual a 1, o valor de fractions representa 5/10 de um segundo.

  2. Quando fractions tem um valor igual a 50 e precision tem um valor igual a 2, o valor de fractions representa 50/100 de um segundo.

  3. Quando fractions tem um valor igual a 500 e precision tem um valor igual a 3, o valor de fractions representa 500/1.000 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  

Veja a seguir 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)  

Confira também

datetime2 (Transact-SQL)