Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

DATETIMEOFFSETFROMPARTS() Exemplos no SQL Server (T-SQL)


T-SQL tem uma função chamada DATETIMEOFFSETFROMPARTS() que permite obter um deslocamento de data e hora valor das várias partes separadas de uma data. Especificamente, ele retorna um deslocamento de data e hora valor para a data e hora especificadas e com os deslocamentos e precisão especificados.

Exemplos desta função abaixo.


Sintaxe


A sintaxe fica assim:
DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision )

Onde:
  • Os primeiros 7 argumentos são expressões inteiras que especificam essa parte de data/hora específica.
  • O hour_offset argumento é uma expressão inteira que especifica a parte da hora do deslocamento do fuso horário.
  • O minute_offset é uma expressão inteira que especifica a parte do minuto do deslocamento do fuso horário.
  • A precision argumento é um literal inteiro que especifica a precisão do offset de data e hora valor a ser devolvido. Esse valor realmente especifica a escala (ou seja, o número de dígitos à direita da casa decimal).

Exemplo


Aqui está um exemplo de uso.
SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, 23, 35, 29, 500, 12, 30, 4 ) 
AS Result;

Resultado:
Result
----------------------------------
2021-05-10 23:35:29.0500 +12:30

Argumentos inválidos


Você precisa garantir que todos os argumentos sejam válidos, caso contrário, você receberá um erro. Aqui está um exemplo de como fornecer uma parte da hora fora do intervalo (25). A parte da hora só pode estar entre 0 e 24.
SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, 25, 35, 29, 500, 12, 30, 4 ) 
AS Result;

Resultado:
Cannot construct data type datetimeoffset, some of the arguments have values which are not valid.

Número de argumentos


Você precisa fornecer o número correto de argumentos (10). Se você não fizer isso, você receberá um erro.
SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10 ) AS Result;

Resultado:
The datetimeoffsetfromparts function requires 10 argument(s).

Argumentos nulos


Se algum dos 9 primeiros argumentos for nulo, o resultado será NULL :
SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, NULL, 35, 29, 500, 12, 30, 4 ) 
AS Result;

Resultado:
Result
----------------------------------
NULL

No entanto, se o último argumento (de precisão) for nulo, um erro será retornado:
SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, 23, 35, 29, 500, 12, 30, NULL ) 
AS Result;

Resultado:
Scale argument is not valid. Valid expressions for data type datetimeoffset scale argument are integer constants and integer constant expressions.

Consulte também exemplos de DATETIME2FROMPARTS() no SQL Server (T-SQL) para retornar um datetime2 valor (sem o deslocamento).