1
resposta

04 Idade dos clientes

Olá pessoal, tudo bem??

Qual é a diferença entre esses respectivos códigos?:

SELECT NOME, DATEDIFF(YEAR, [DATA DE NASCIMENTO], GETDATE()) AS IDADE
FROM [TABELA DE CLIENTES]

SELECT NOME, IDADE FROM [TABELA DE CLIENTES]

Ambos retornam o nome do cliente e a idade. Tem alguma melhor opção de usar no dia a dia, ou é de boa prática especificar o Date??

Obrigado =D

1 resposta

Olá Gabriel, tudo bem?

Na primeira consulta, quando você utiliza o DATEDIFF(YEAR, [DATA DE NASCIMENTO], GETDATE()) AS IDADE, isso retorna a diferença do ano de nascimento para o ano atual. Acredito, que essa prática seja custosa em termos de tempo gasto com o cálculo de cada registro considerando uma tabela com milhões e/ou bilhões de clientes cadastrados.

.

Já na segunda consulta, você possui uma coluna idade e isso (pelo que eu entendi) já vem calculado, ou seja, menos custoso. Talvez essa seja uma boa opção para utilizar.

.

Trabalhar com datas é muito útil no mercado de trabalho, além do uso de índices, procedures, integrações de bases de dados e vale muuuito a pena explorar também o tema -- particionamento de tabelas por ano -- , grandes empresas utilizam partition table reduzindo por exemplo, horas de processamento na leitura e escrita de dados.

.

Espero ter ajudado =D

Cida Luna.