DATETIMEOFFSETFROMPARTS (Transact-SQL)
Retorna um valor datetimeoffset para a data e a hora especificadas e com deslocamentos e precisão especificados.
Convenções da sintaxe Transact-SQL
Sintaxe
DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, 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.hour_offset
Expressão de inteiro que especifica a parte de hora do deslocamento de fuso horário.minute_offset
Expressão de inteiro que especifica a parte de minutos do deslocamento de fuso horário.precision
Literal de inteiro que especifica a precisão do valor datetimeoffset a ser retornado.
Tipos de retorno
datetimeoffset ( precision )
Comentários
DATETIMEOFFSETFROMPARTS retorna um tipo de dados datetimeoffset completamente inicializado. Os argumentos de deslocamento são usados para representar o deslocamento de fuso horário. Se os argumentos de deslocamento forem omitidos, será assumido que o deslocamento de fuso horário é 00:00, ou seja, não há deslocamento de fuso horário. Se os argumentos de deslocamento forem especificados, ambos os argumentos devem estar presentes e ambos devem ser positivos ou negativos. Se minute_offset for especificado sem hour_offset, um erro será lançado. Se outros 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 2012 e acima. Ela não será remota para servidores que têm uma versão anterior ao SQL Server 2012.
Exemplos
A.Exemplo simples sem frações de um segundo
SELECT DATETIMEOFFSETFROMPARTS ( 2010, 12, 31, 14, 23, 23, 0, 12, 0, 7 ) AS Result;
Aqui está o conjunto de resultados.
Result
-------------------------------------------
2010-12-07 00:00:00.0000000 +00:00
(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 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
Aqui está 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)