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 <sonigomes@uol.com.br> 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,Sonisesonigomes@uol.com.brescreveu: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
Coelholuz.rogerio@gmail.comescreveu: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
usuarios@pt-br.libreoffice.org# Informações
sobre os comandos disponíveis (em inglês):mande e-mail vazio para
usuarios+help@pt-br.libreoffice.org# Cancelar sua assinatura: mande
e-mail vazio para:usuarios+unsubscribe@pt-br.libreoffice.org# Arquivo de
mensagens:http://listarchives.libreoffice.org/pt-br/usuarios/--Você está
recebendo e-mails da lista usuarios@pt-br.libreoffice.org# Informações
sobre os comandos disponíveis (em inglês):mande e-mail vazio para
usuarios+help@pt-br.libreoffice.org# Cancelar sua assinatura: mande
e-mail vazio para:usuarios+unsubscribe@pt-br.libreoffice.org# 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
usuarios+help@pt-br.libreoffice.org#Cancelar sua assinatura: mande e-mail
vazio
para:usuarios+unsubscribe@pt-br.libreoffice.org# Arquivo de mensagens:
http://listarchives.libreoffice.org/pt-br/usuarios/
--
Você está recebendo e-mails da lista usuarios@pt-br.libreoffice.org
# Informações sobre os comandos disponíveis (em inglês):
mande e-mail vazio para usuarios+help@pt-br.libreoffice.org
# Cancelar sua assinatura: mande e-mail vazio para:
usuarios+unsubscribe@pt-br.libreoffice.org
# Arquivo de mensagens:
http://listarchives.libreoffice.org/pt-br/usuarios/
--
Você está recebendo e-mails da lista usuarios@pt-br.libreoffice.org
# Informações sobre os comandos disponíveis (em inglês):
mande e-mail vazio para usuarios+help@pt-br.libreoffice.org
# Cancelar sua assinatura: mande e-mail vazio para:
usuarios+unsubscribe@pt-br.libreoffice.org
# Arquivo de mensagens:
http://listarchives.libreoffice.org/pt-br/usuarios/