Inquiridor
Consulta com DATEDIFF

Pergunta
-
Todas as Respostas
-
Bom dia,
Não entendi o que você quer fazer, mas da forma como você deixou a função vai retornar a quantidade de anos entre a data de admissão (data inicial) e a data de nascimento (data final), então o resultado vai ser sempre negativo porque acredito que a data de nascimento seja sempre menor que a data de admissão.
Espero que ajude
Assinatura: http://www.imoveisemexposicao.com.br
-
-
Você teria que inicialmente inverter os parâmetros da função DateDiff:
where DATEDIFF(year, dt_nasc, dt_admissao) < 20
Mas a função DateDiff não leva em consideração o mes e o ano das datas no calculo da diferença, então segue sugestão para complementar o calculo:
where datediff(year, dt_nasc, dt_admissao) - case when month(dt_admissao) * 100 + day(dt_admissao) > month(dt_nasc) * 100 + day(dt_nasc) then 0 else 1 end < 20
Espero que ajude
Assinatura: http://www.imoveisemexposicao.com.br
-
Passei a utilizar a base do Covid (SRAG). Estou com dificuldade e juntar o seu exemplo, com resto da consulta.
SELECT * FROM covid.influid14092020 where ID_MUNICIP like 'Bauru' and where datediff(year, DT_NASC, DT_NOTIFIC) - case when month(DT_NOTIFIC) * 100 + day(DT_NOTIFIC) > month(DT_NASC) * 100 + day(DT_NASC) then 0 else 1 end < 20;
-
Na sua consulta está sobrando um Where, e aproveitando vou fazer uma pequena retificação, alterando o ">" para ">=":
SELECT * FROM covid.influid14092020 where ID_MUNICIP like 'Bauru' and datediff(year, DT_NASC, DT_NOTIFIC) - case when month(DT_NOTIFIC) * 100 + day(DT_NOTIFIC) >= month(DT_NASC) * 100 + day(DT_NASC) then 0 else 1 end < 20;
Espero que ajude
Assinatura: http://www.imoveisemexposicao.com.br