Pular para o conteúdo
Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • #99502
    Avatar de mpunganmpungan
    Participante

      Olá, estou precisando fazer o cálculo de idades, só que o código que estou utilizando não esta trazendo o resultado correto. O código que estou utilizando é esse abaixo:
      select nome, to_char(data_nasc, ‘DD/MM/YYYY’), to_char(data_fale, ‘DD/MM/YYYY’), trunc((to_date(data_fale) – to_date(data_nasc)) / 365, 0) “Idade” from teste.parentes3
      where nome not like ‘Filho%’
      and data_nasc is not null
      and data_fale is not null
      order by sequencia

      Em alguns resultados aparecem idades negativas e não corretas. Alguém pode dar uma ajuda, nessa questão.

      Abraços.

      Mpungan

      #99504
      Avatar de Manoel872Manoel872
      Participante

        SELECT TRUNC(TRUNC(NVL(NULL,SYSDATE) – TO_DATE(’19/11/1988′, ‘DD/MM/RRRR’))/365) FROM DUAL

        Eu faria assim! No NVL onde coloquei null e quando existir data de falecimento vc coloca sua variavel de dt falecimento ae.

        Att,

        Manoel Jr.

        #99508
        Avatar de burgaburga
        Participante

          Outra forma de fazer é:
          TRUNC(MONTHS_BETWEEN(data_fale, data_nasc)/12)

          #99512
          Avatar de rmanrman
          Participante

            A forma que o burga apresentou é mais precisa.

            Dividir pela constante 365 dias pode dar uma leve imprecisão, pois existe o ano bissexto que possui 366 dias, bom é um mero detalhe apenas… 😆

          Visualizando 4 posts - 1 até 4 (de 4 do total)
          • Você deve fazer login para responder a este tópico.
          plugins premium WordPress