DATETIMEOFFSETFROMPARTS (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)
Retorna um valor datetimeoffset para os argumentos de data e hora especificados. O valor retornado tem uma precisão especificada pelo argumento de precisão e um deslocamento conforme especificado pelos argumentos de deslocamento.
Convenções de sintaxe de Transact-SQL
Sintaxe
DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, 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.
hour_offset
Uma expressão de inteiro que especifica a parte de hora da compensação de fuso horário.
minute_offset
Uma expressão de inteiro que especifica a parte de minuto da compensação de fuso horário.
precisão
Um valor literal de inteiro que especifica a precisão do valor datetimeoffset que DATETIMEOFFSETFROMPARTS
retornará.
Tipos de retorno
datetimeoffset( precision )
Comentários
DATETIMEOFFSETFROMPARTS
retorna um tipo de dados datetimeoffset totalmente inicializado. Os argumentos de deslocamento representam o deslocamento de fuso horário. Para argumentos de deslocamento omitidos, DATETIMEOFFSETFROMPARTS
presume um deslocamento de fuso horário de 00:00
– em outras palavras, nenhum deslocamento de fuso horário. Para argumentos de deslocamento especificados, DATETIMEOFFSETFROMPARTS
espera valores para os argumentos e os dois valores devem ser positivos ou negativos. Se minute_offset tiver um valor e hour_offset não tiver um valor, DATETIMEOFFSETFROMPARTS
gerará um erro. DATETIMEOFFSETFROMPARTS
gerará um erro se outros argumentos tiverem valores inválidos. Se pelo menos um dos argumentos necessários tiver um valor NULL
, DATETIMEOFFSETFROMPARTS
retornará NULL
. No entanto, se o argumento precision tiver um valor NULL
, DATETIMEOFFSETFROMPARTS
gerará um erro.
O argumento fractions depende do argumento precision. Por exemplo, para um valor de 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, DATETIMEOFFSETFROMPARTS
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 DATETIMEOFFSETFROMPARTS ( 2010, 12, 31, 14, 23, 23, 0, 12, 0, 7 ) AS Result;
Veja a seguir o conjunto de resultados.
Result
----------------------------------
2010-12-31 14:23:23.0000000 +12:00
(1 row(s) affected)
B. Exemplo simples com frações de um segundo
Este exemplo demonstra o uso dos parâmetros fractions e precision:
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.
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.
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 DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 5, 12, 30, 1 );
SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 50, 12, 30, 2 );
SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 500, 12, 30, 3 );
GO
Veja a seguir o conjunto de resultados.
----------------------------------
2011-08-15 14:30:00.5 +12:30
(1 row(s) affected)
----------------------------------
2011-08-15 14:30:00.50 +12:30
(1 row(s) affected)
----------------------------------
2011-08-15 14:30:00.500 +12:30
(1 row(s) affected)