Ir para conteúdo
Seja Membro VIP - Remova Banners de Propagandas, Tenha Liberado Qualquer Download, Além de Acessos em Áreas Exclusivas!! ×
Quer acesso a todas as Áreas do Fórum, até aquelas só para membros VIPs? Também quer poder baixar qualquer ARQUIVO? ×
AVISO AOS MEMBROS:

Fizemos uma atualização em 18/06/2023, e a forma de acesso ao Fórum mudou. Não mais está sendo aceito o login pelo Nome de Exibição cadastrado. Agora, apenas pelo email e pelos integradores de Login do Facebook, Google e Microsoft. O Facebook estava com uma validação pendente e já foi normalizado o acesso, já o Google, ainda estamos verificando o que está ocorrendo que não está funcionando.
Caso precisem de ajuda para o login pelo email acesse o link << Esqueci minha senha de acesso>> ou nos envie um pedido de ajuda pelo email admin@forumrm.com.br

Administração
ForumRM

Cálculo de Idade (Dica)


Posts Recomendados


  • Tópicos Que Criei:  30
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  103
  • Conteúdo/Dia:  0.02
  • Reputação:   2
  • Pontos/Conquistas:  812
  • Conteúdo Resolvido:  0
  • Dias Ganho:  2
  • Status:  Offline

Bom Dia pessoal!

Posto aqui uma dica para cálculo de idade. Pode ser útil, ok!!!

SELECT

CASE WHEN

DATEPART(MONTH,PPESSOA.DTNASCIMENTO)<= DATEPART(MONTH,GETDATE()) AND

DATEPART(DAY,PPESSOA.DTNASCIMENTO)<= DATEPART(DAY,GETDATE())

THEN

(DATEDIFF(YEAR,PPESSOA.DTNASCIMENTO,GETDATE()))

ELSE

(DATEDIFF(YEAR,PPESSOA.DTNASCIMENTO,GETDATE()))- 1

END AS IDADEATUAL

FROM PPESSOA

Editado por Vid. 2009
Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  284
  • Tópicos/Dia:  0.04
  • Meu Conteúdo:  2.117
  • Conteúdo/Dia:  0.32
  • Reputação:   10
  • Pontos/Conquistas:  13.363
  • Conteúdo Resolvido:  0
  • Dias Ganho:  9
  • Status:  Offline
  • Idade:  45

Bacana, apenas como dica também pedi que colocassem a idade da pessoa no cadastro, na 10.70 já saiu no Vitae e na 10.80 sai no Labore.

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  284
  • Tópicos/Dia:  0.04
  • Meu Conteúdo:  2.117
  • Conteúdo/Dia:  0.32
  • Reputação:   10
  • Pontos/Conquistas:  13.363
  • Conteúdo Resolvido:  0
  • Dias Ganho:  9
  • Status:  Offline
  • Idade:  45

Ah, quem fez a gentileza foi o Luciano, vulgo Pequeno, que infelizmente saiu ...

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  15
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  285
  • Conteúdo/Dia:  0.05
  • Reputação:   1
  • Pontos/Conquistas:  1.548
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  40
  • Dispositivo:  Windows

Do jeito q está, quem nasceu em um dia depois do dia atual e no mês anterior ao atual (29/03 por exemplo, considerando q hoje é dia 28/07) está trazendo como se não tivesse feito aniversário ainda.

Desta forma acho q fica direitinho

SELECT PPESSOA.DTNASCIMENTO,

CASE WHEN

DATEPART(MONTH,PPESSOA.DTNASCIMENTO)< DATEPART(MONTH,GETDATE()) OR

(DATEPART(DAY,PPESSOA.DTNASCIMENTO)>= DATEPART(DAY,GETDATE()) AND DATEPART(MONTH,PPESSOA.DTNASCIMENTO)<= DATEPART(MONTH,GETDATE()))

THEN

(DATEDIFF(YEAR,PPESSOA.DTNASCIMENTO,GETDATE()))

ELSE

(DATEDIFF(YEAR,PPESSOA.DTNASCIMENTO,GETDATE()))- 1

END AS IDADEATUAL

FROM PPESSOA

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  899
  • Tópicos/Dia:  0.14
  • Meu Conteúdo:  8.841
  • Conteúdo/Dia:  1.34
  • Reputação:   310
  • Pontos/Conquistas:  106.574
  • Conteúdo Resolvido:  0
  • Dias Ganho:  195
  • Status:  Offline
  • Idade:  52
  • Dispositivo:  Windows

Link para comentar
Compartilhar em outros sites

  • 1 ano depois...

  • Tópicos Que Criei:  0
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  4
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  20
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Se quiseres por ANO, MESES e DIAS:

Basta alterar @niver = pela tabela correspondente.

Precisei dessa informação nos relatórios de Laudo do Raio-X(RM Saúde).

Segue informação valiosa a respeito do cálculo de datas:

http://www.mail-arch...r/msg33626.html

Validei conforme os problemas propostos no link acima.

========================================================================+

-- Wederson Rodrigues dos Reis

**** Email retirado do POST / Autorizado apenas para Equipe interna do Fórum RM ****

** Vide Regras **

DECLARE @NIVER DATETIME

DECLARE @ATUAL DATETIME

DECLARE @DATATEMP1 DATETIME

DECLARE @DATATEMP2 DATETIME

DECLARE @ANOS INT

DECLARE @MESES INT

DECLARE @DIAS INT

SELECT @NIVER = DATANASC FROM SZPACIENTE WHERE CODPACIENTE =:ESPELHO#1

SELECT @ATUAL = GETDATE()

SELECT @ANOS = (YEAR(@ATUAL) - YEAR(@NIVER)) -

CASE

WHEN (MONTH(@ATUAL) < MONTH(@NIVER)) THEN 1

ELSE

CASE

WHEN ((MONTH(@ATUAL) = MONTH(@NIVER)) AND (DAY(@ATUAL) < DAY (@NIVER))) THEN 1

ELSE

CASE

WHEN (DAY(@ATUAL) = DAY(@NIVER)) THEN 0

ELSE 0

END

END

END

SELECT @DATATEMP1 = DATEADD(YY, @ANOS, @NIVER)

SELECT @MESES = DATEDIFF(M, @DATATEMP1, @ATUAL) -

CASE

WHEN MONTH(@DATATEMP1) = MONTH(@ATUAL) AND DAY(@ATUAL) < DAY(@NIVER) THEN 1

ELSE

CASE

WHEN MONTH(@DATATEMP1) < MONTH(@ATUAL) AND DAY(@ATUAL) < DAY(@NIVER) THEN 1

ELSE

CASE

WHEN DAY(@ATUAL) < DAY(@NIVER) THEN 1

ELSE 0

END

END

END

SELECT @DATATEMP2 = DATEADD(M, @MESES, @DATATEMP1)

SELECT @DIAS = DATEDIFF(D, @DATATEMP2, @ATUAL)

SELECT @ANOS AS ANOS, @MESES AS MESES, @DIAS DIA

Link para comentar
Compartilhar em outros sites

Participe da conversa

Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.

Visitante
Responder esse tópico

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Seu link foi automaticamente inserido no corpo do post.   Exibir como um link

×   Seu conteúdo anterior foi restaurado.   Limpar conteúdo do editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Criar Novo...

Informação Importante

Usando este site, você concorda com nossos Termos de Uso e nossa Política de Privacidade.