Você pode usar o T-SQL
DATEFROMPARTS()
função no SQL Server para retornar uma data valor que mapeia para as partes de data que você fornece como expressões inteiras. A maneira como funciona é que você fornece três valores (um para cada um dos ano , mês , e dia valores) e o SQL Server retornará uma data valor com base nos valores que você fornece.
Exemplos abaixo.
Sintaxe
Primeiro, aqui está a sintaxe:
DATEFROMPARTS ( year, month, day )
Veja o que cada argumento pode ser:
year
- Uma expressão inteira que especifica um ano.
month
- Uma expressão inteira que especifica um mês, de 1 a 12.
day
- Uma expressão inteira que especifica um dia.
Exemplo
Segue um exemplo de uso:
SELECT DATEFROMPARTS( 2021, 05, 10 ) AS Result;
Resultado:
+------------+ | Result | |------------| | 2021-05-10 | +------------+
Valores inválidos
Você precisará garantir que as partes da data sejam fornecidas na ordem correta, caso contrário, poderá ocorrer um erro. Pior ainda, você pode não receber um erro (se a parte do dia for 12 ou menos) e, portanto, pode perder um grande problema com a forma como a data é traduzida.
Aqui está um exemplo de um valor inválido:
SELECT DATEFROMPARTS( 2021, 30, 10 ) AS Result;
Resultado:
Cannot construct data type date, some of the arguments have values which are not valid.
Isso ocorre porque fornecemos 30 como parte do mês. Esta parte só aceitará valores entre 1 e 12.
Valores nulos
Se algum dos argumentos for nulo, o resultado será
NULL
. Aqui está um exemplo usando um valor nulo:
SELECT DATEFROMPARTS( 2021, NULL, 10 ) AS Result;
Resultado:
+----------+ | Result | |----------| | NULL | +----------+
Portanto, provavelmente não é preciso dizer (mas direi mesmo assim), que se todos os argumentos forem valores nulos, o resultado será
NULL
:SELECT DATEFROMPARTS( NULL, NULL, NULL ) AS Result;
Resultado:
+----------+ | Result | |----------| | NULL | +----------+