Olá, Use a expressão:
Idade = ParteInteira((DataAtual - DataNascimento) / 365.2425) Att. Em 11 de março de 2012 21:23, sp24horas <[email protected]> escreveu: > Olá! > > Como você tem feito as perguntas em fragmentos, nem sempre vai atingir seus > objetivos, pois acaba confundindo quem pode ajudar. > Agora ficou claro para mim o que você precisa. > Calcular a idade correta, com precisão de meses e dias. > Não vou passar uma macro pois acho que vai mais te confundir do que ajudar. > > Obs: DOB - o campo da sua tabela com a data de nascimento- dd/mm/aaaa > > Se você alterar o campo da consulta da outra resposta, para este, vai ter a > precisão que procura. > > DATEDIFF( 'mm', "DOB", CURRENT_DATE ) / 12 - CASE WHEN MONTH( "DOB" ) = > MONTH( CURRENT_DATE ) AND DAY( "DOB" ) > DAY( CURRENT_DATE ) THEN 1 ELSE 0 > END > > > > > Em 11 de março de 2012 19:17, Sonise <[email protected]> escreveu: > > > > > > > Olá Galera, > > > > > > Como não sei transformar o que desejo em linguagem, peço a ajuda de > vocês. > > > > > > Para calcular a idade, eu não preciso me preocupar com dias na situação > do > > meu banco de dados, então, pensei da seguinte > > > > > > forma. > > > > > > Com a diferença entre anos, eu já obtenho o resultado da idade, mas > existe > > o problema que se o mês de nascimento (15/11/75) for maior > > > > > > que o mês atual (11/03/2012), a pessoa ainda não fez aniversário e a > idade > > precisa ser diminuída, entaõ seria assim:6Com esse comando SELECT "NOME", > > YEAR( NOW( ) ) - "DN" AS "IDADE" FROM "CADASTRO", eu já tenho na consulta > > > > > > a diferença de anos, isto é, já tenho a informação da idade. Esse dado é > > armazenado no campo IDADE da consulta > > > > > > Então, pensei em criar um procedimento, que pode ser via macro no > > formulário, em que após a idade ser atualizada pela > > > > > > diferença dos anos, esse procedimento checaria a condição do mês para > > recalcular ou não a idade. > > > > > > Se MONTH("DATADENASCIMENTO")MONTH("Hoje") então "IDADE"-1, Se não, fica > > como está, ou "IDADE" = "IDADE"Com o procedimento, o campo idade será > > diminuído em 1.Por exemplo, quem nasceu em 15/11/76, com a diferença de > > anos já aparece 36, mas com o procedimento, ficará 35. > > > > > > É possível fazer > > > isso?_____________________________________------------------------------------------------------------- > > > > > > > > > > Em 11/03/2012 18:08,[email protected]:Não consegui.Nas > > consultas do BASE, meu programa só aceita a função NOW(), quando coloco > > DATE, CURRENT_DATe, TODAY, a consulta dá erro. Talvez seja isso, pois > > aparece a coluna DATEDIFF como campo desconhecido.Encontrei a seguinte > > sugestão no site abaixo, mas dá erro de sintaxe. Lembrando que a data > 1974, > > é o campo data de nascimento. > > > http://pplware.sapo.pt/tutoriais/vamos-dar-uns-toques-de-sql-vi-2/SELECTDATE_FORMAT(NOW(), > ‘%Y’) – DATE_FORMAT(’1974-08-17′, ‘%Y’) – > > (DATE_FORMAT(NOW(), ’00-%m-%d’)DATE_FORMAT('1974-08-17', '00-%m-%d')) AS > > > idade;------------------------------------------------------------------------------------------------------------------------------------------------ > > ------Em 11/03/2012 11:48, Rogerio Luz > [email protected]:existe > > outra função no BASE chamado DATEDIFF()Ela lhe dará a diferença entre > duas > > datas.Então faríamos o seguinte:Definiríamos uma coluna com a seguinte > > função, lembrando que sua colunaHOJE já deve ser definida com a outra > > função SQL que vc já usa. Podemosinserir uma colunaDATEDIFF('yy-mm'; > > "DATA_DE_NASCIMENTO" ; "HOJE") para anos-meses completos,favor testar e > > reportar.RogerioEm 11 de março de 2012 08:41, Sonise escreveu:Olá > > Pessoal,Alguém sabe como criar um campo para calcular, de forma > automática, > > aidade no BASE?Grata,Sonise--Você está recebendo e-mails da lista > > [email protected]# Informações > > sobre os comandos disponíveis (em inglês):mande e-mail vazio para > > [email protected]# Cancelar sua assinatura: mande > > e-mail vazio para:[email protected]# Arquivo de > > mensagens:http://listarchives.libreoffice.org/pt-br/usuarios/--Você está > > recebendo e-mails da lista [email protected]# Informações > > sobre os comandos disponíveis (em inglês):mande e-mail vazio para > > [email protected]# Cancelar sua assinatura: mande > > e-mail vazio para:[email protected]# Arquivo de > > mensagens:http://listarchives.libreoffice.org/pt-br/usuarios/--Você está > > recebendo e-mails da lista usuarios@p > > t-br.libreoffice.org# Informações sobre os comandos disponíveis (em > > inglês):mande e-mail vazio para > [email protected]#Cancelar sua assinatura: mande e-mail > vazio > > para:[email protected]# Arquivo de mensagens: > > http://listarchives.libreoffice.org/pt-br/usuarios/ > > > > > > -- > > Você está recebendo e-mails da lista [email protected] > > # Informações sobre os comandos disponíveis (em inglês): > > mande e-mail vazio para [email protected] > > # Cancelar sua assinatura: mande e-mail vazio para: > > [email protected] > > # Arquivo de mensagens: > > http://listarchives.libreoffice.org/pt-br/usuarios/ > > > > -- > Você está recebendo e-mails da lista [email protected] > # Informações sobre os comandos disponíveis (em inglês): > mande e-mail vazio para [email protected] > # Cancelar sua assinatura: mande e-mail vazio para: > [email protected] > # Arquivo de mensagens: > http://listarchives.libreoffice.org/pt-br/usuarios/ > -- Você está recebendo e-mails da lista [email protected] # Informações sobre os comandos disponíveis (em inglês): mande e-mail vazio para [email protected] # Cancelar sua assinatura: mande e-mail vazio para: [email protected] # Arquivo de mensagens: http://listarchives.libreoffice.org/pt-br/usuarios/

