Quantcast

[pt-br-usuarios] IDADE

classic Classic list List threaded Threaded
8 messages Options
Sonise Sonise
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[pt-br-usuarios] IDADE

Olá Pessoal,


Alguém sabe como criar um campo para calcular, de forma automática, a idade no BASE?

Grata,
Sonise

--
Você está recebendo e-mails da lista [hidden email]
# Informações sobre os comandos disponíveis (em inglês):
  mande e-mail vazio para [hidden email]
# Cancelar sua assinatura: mande e-mail vazio para:
  [hidden email]
# Arquivo de mensagens: http://listarchives.libreoffice.org/pt-br/usuarios/
Sonise Sonise
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [pt-br-usuarios] IDADE

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/


SELECT DATE_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 Coelho < [hidden email] > escreveu:
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 coluna
HOJE já deve ser definida com a outra função SQL que vc já usa. Podemos
inserir uma coluna

DATEDIFF('yy-mm'; "DATA_DE_NASCIMENTO" ; "HOJE") para anos-meses completos,
favor testar e reportar.

Rogerio


Em 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, a
> idade no BASE?
>
> Grata,
> Sonise
>
> --
> Você está recebendo e-mails da lista [hidden email]
> # Informações sobre os comandos disponíveis (em inglês):
> mande e-mail vazio para [hidden email]
> # Cancelar sua assinatura: mande e-mail vazio para:
> [hidden email]
> # Arquivo de mensagens:
> http://listarchives.libreoffice.org/pt-br/usuarios/
>

--
Você está recebendo e-mails da lista [hidden email]
# Informações sobre os comandos disponíveis (em inglês):
mande e-mail vazio para [hidden email]
# Cancelar sua assinatura: mande e-mail vazio para:
[hidden email]
# Arquivo de mensagens: http://listarchives.libreoffice.org/pt-br/usuarios/



--
Você está recebendo e-mails da lista [hidden email]
# Informações sobre os comandos disponíveis (em inglês):
  mande e-mail vazio para [hidden email]
# Cancelar sua assinatura: mande e-mail vazio para:
  [hidden email]
# Arquivo de mensagens: http://listarchives.libreoffice.org/pt-br/usuarios/
sp24horas sp24horas
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [pt-br-usuarios] IDADE

Olá!

A partir da resposta inicial de *DrewJensen *em
http://www.oooforum.org/forum/viewtopic.phtml?t=26140

Desenvolvi o seguinte código em uma consulta no modo SQL, que talvez seja o
que precisa.

SELECT DATEDIFF( 'year', CAST( "DOB" AS TIMESTAMP ), CURRENT_TIMESTAMP ) AS
"IDADE" FROM "patients"

Se você criar no modo design da consulta, fica :
campo DATEDIFF( 'year', CAST( [DOB] AS TIMESTAMP ), CURRENT_TIMESTAMP )
alias IDADE

Obs: patients é o nome da tabela do exemplo, DOB - campo com a data de
nascimento tipo DATE - "ddmmyyyy".
O exemplo dele para mim não funcionou, talvez por usar CASE em 2005.
Se criasse o campo como timestamp na tabela, não precisaria do CAST,mas,
não queria mostrar a hora.
Para mais detalhes, procure verificar a documentação do HSQLDB.


Em 11 de março de 2012 18:08, Sonise <[hidden email]> escreveu:

> 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/
>
>
> SELECT DATE_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 Coelho < [hidden email] >
> escreveu:
> 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 coluna
> HOJE já deve ser definida com a outra função SQL que vc já usa. Podemos
> inserir uma coluna
>
> DATEDIFF('yy-mm'; "DATA_DE_NASCIMENTO" ; "HOJE") para anos-meses completos,
> favor testar e reportar.
>
> Rogerio
>
>
> Em 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, a
> > idade no BASE?
> >
> > Grata,
> > Sonise
> >
> > --
> > Você está recebendo e-mails da lista [hidden email]
> > # Informações sobre os comandos disponíveis (em inglês):
> > mande e-mail vazio para [hidden email]
> > # Cancelar sua assinatura: mande e-mail vazio para:
> > [hidden email]
> > # Arquivo de mensagens:
> > http://listarchives.libreoffice.org/pt-br/usuarios/
> >
>
> --
> Você está recebendo e-mails da lista [hidden email]
> # Informações sobre os comandos disponíveis (em inglês):
> mande e-mail vazio para [hidden email]
> # Cancelar sua assinatura: mande e-mail vazio para:
> [hidden email]
> # Arquivo de mensagens:
> http://listarchives.libreoffice.org/pt-br/usuarios/
>
>
>
> --
> Você está recebendo e-mails da lista [hidden email]
> # Informações sobre os comandos disponíveis (em inglês):
>  mande e-mail vazio para [hidden email]
> # Cancelar sua assinatura: mande e-mail vazio para:
>  [hidden email]
> # Arquivo de mensagens:
> http://listarchives.libreoffice.org/pt-br/usuarios/
>

--
Você está recebendo e-mails da lista [hidden email]
# Informações sobre os comandos disponíveis (em inglês):
  mande e-mail vazio para [hidden email]
# Cancelar sua assinatura: mande e-mail vazio para:
  [hidden email]
# Arquivo de mensagens: http://listarchives.libreoffice.org/pt-br/usuarios/
Sonise Sonise
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[pt-br-usuarios] IDADE - ajuda para criar procedimento!

In reply to this post by Sonise


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,[hidden email]: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/SELECT DATE_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 [hidden email]: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 [hidden email]# Informações
  sobre os comandos disponíveis (em inglês):mande e-mail vazio para [hidden email]# Cancelar sua assinatura: mande e-mail vazio para:[hidden email]# Arquivo de mensagens:http://listarchives.libreoffice.org/pt-br/usuarios/--Você está recebendo e-mails da lista [hidden email]# Informações sobre os comandos disponíveis (em inglês):mande e-mail vazio para [hidden email]# Cancelar sua assinatura: mande e-mail vazio para:[hidden email]# 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 [hidden email]# Cancelar sua assinatura: mande e-mail vazio para:[hidden email]# Arquivo de mensagens:http://listarchives.libreoffice.org/pt-br/usuarios/


--
Você está recebendo e-mails da lista [hidden email]
# Informações sobre os comandos disponíveis (em inglês):
  mande e-mail vazio para [hidden email]
# Cancelar sua assinatura: mande e-mail vazio para:
  [hidden email]
# Arquivo de mensagens: http://listarchives.libreoffice.org/pt-br/usuarios/
Lineu Carneiro Saraiva Lineu Carneiro Saraiva
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [pt-br-usuarios] IDADE - ajuda para criar procedimento!

Na linguagem de programação que eu utilizo no dia a dia eu sei fazer e aliás
fiz para um
cliente esta semana.

Talvez voce possa adaptar a minha solução para o seu caso mas não conheço os
recursos
para programar isto.

Se voce montar duas variáveis no formato mes/ano com as duas datas voce vai
saber se a pessoa já fez aniversário ou ainda irá fazer.

No seu exemplo, a pessoa nasceu em 15.11.1975 e hoje é 11.03.2012

A variável 1 seria : 1115 (mes/ano do aniversário)
A variável 2 seria : 0311 (mes/ano da data atual)

Se a variável 1 for maior que a variável 2 a pessoa ainda não fez
aniversário este ano
Se a variável 1 for menor que a variável 1 a pessoa já fez aniversário este
ano
Se as duas variáveis forem iguais, parabéns, o aniversário é hoje.

Espero que isto sirva para te ajudar.

-----------------------------------------------
Lineu Carneiro Saraiva
[hidden email]
www.lncs.com.br
www.aeromuseu.com.br
www.onibusbrasil.com/lineusaraiva


--
Você está recebendo e-mails da lista [hidden email]
# Informações sobre os comandos disponíveis (em inglês):
  mande e-mail vazio para [hidden email]
# Cancelar sua assinatura: mande e-mail vazio para:
  [hidden email]
# Arquivo de mensagens: http://listarchives.libreoffice.org/pt-br/usuarios/
sp24horas sp24horas
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [pt-br-usuarios] IDADE - ajuda para criar procedimento!

In reply to this post by Sonise
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 <[hidden email]> 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,[hidden email]: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 [hidden email]: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
> [hidden email]# Informações
>  sobre os comandos disponíveis (em inglês):mande e-mail vazio para
> [hidden email]# Cancelar sua assinatura: mande
> e-mail vazio para:[hidden email]# Arquivo de
> mensagens:http://listarchives.libreoffice.org/pt-br/usuarios/--Você está
> recebendo e-mails da lista [hidden email]# Informações
> sobre os comandos disponíveis (em inglês):mande e-mail vazio para
> [hidden email]# Cancelar sua assinatura: mande
> e-mail vazio para:[hidden email]# 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 [hidden email]#Cancelar sua assinatura: mande e-mail vazio
> para:[hidden email]# Arquivo de mensagens:
> http://listarchives.libreoffice.org/pt-br/usuarios/
>
>
> --
> Você está recebendo e-mails da lista [hidden email]
> # Informações sobre os comandos disponíveis (em inglês):
>  mande e-mail vazio para [hidden email]
> # Cancelar sua assinatura: mande e-mail vazio para:
>  [hidden email]
> # Arquivo de mensagens:
> http://listarchives.libreoffice.org/pt-br/usuarios/
>

--
Você está recebendo e-mails da lista [hidden email]
# Informações sobre os comandos disponíveis (em inglês):
  mande e-mail vazio para [hidden email]
# Cancelar sua assinatura: mande e-mail vazio para:
  [hidden email]
# Arquivo de mensagens: http://listarchives.libreoffice.org/pt-br/usuarios/
Sonise Sonise
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [pt-br-usuarios] IDADE - ajuda para criar procedimento! - SOLUÇÃO

PERFEITOOOO... FUNCIONOU!!!!!!!!!!!!!!!!!!!!!! OBRIGADA... MUITO OBRIGADA!!!Em 11/03/2012 21:23,[hidden email]:Olá!Como você tem feito as perguntas em fragmentos, nem sempre vai atingir seusobjetivos, 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/aaaaSe você alterar o campo da consulta da outra resposta, para este, vai ter aprecisã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 0ENDEm 11 de março de 2012 19:17, Sonise escreveu:Olá Galera,Como não sei transfo
 rmar 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 domeu banco de dados, então, pensei da seguinteforma.Com a diferença entre anos, eu já obtenho o resultado da idade, mas existeo problema que se o mês de nascimento (15/11/75) for maiorque o mês atual (11/03/2012), a pessoa ainda não fez aniversário e a idadeprecisa ser diminuída, entaõ seria assim:6Com esse comando SELECT "NOME",YEAR( NOW( ) ) - "DN" AS "IDADE" FROM "CADASTRO", eu já tenho na consultaa diferença de anos, isto é, já tenho a informação da idade. Esse dado éarmazenado no campo IDADE da consultaEntão, pensei em criar um procedimento, que pode ser via macro noformulári
 o, em que após a idade ser atualizada peladiferença dos anos, esse procedimento checaria a condição do mês pararecalcular ou não a idade.Se MONTH("DATADENASCIMENTO")MONTH("Hoje") então "IDADE"-1, Se não, ficacomo 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 deanos já aparece 36, mas com o procedimento, ficará 35.É possível fazerisso?_____________________________________-------------------------------------------------------------Em 11/03/2012 18:08,[hidden email]:Não consegui.Nasconsultas do BASE, meu programa só aceita a função NOW(), quando colocoDATE, CURRENT_DATe, TODAY, a consulta dá erro. Talvez seja isso, poisapar
 ece a coluna DATEDIFF como campo desconhecido.Encontrei a seguintesugestã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')) ASidade;------------------------------------------------------------------------------------------------------------------------------------------------------Em 11/03/2012 11:48, Rogerio Luz [hidden email]:existeoutra função no BASE chamado DATEDIFF()Ela lhe dará a diferença entre duasdatas.Então faríamos o seguinte:Definiríamos uma coluna com a seguintefunção, lembrando que sua colunaHOJE já deve ser definida com a outrafunção SQL que vc já usa. Podemosinserir uma colunaDATEDIFF('yy-mm';"DATA_DE_NASCIMENTO" ; "HOJE") para anos-meses completos,favor testar ereportar.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 [hidden email]# Informaçõessobre os comandos disponíveis (em inglês):mande e-mail vazio [hidden email]# Cancelar sua assinatura: mandee-mail vazio para:[hidden email]# Arquivo demensagens:http://listarchives.libreoffice.org/pt-br/usuarios/--Vocêestárecebendo e
 -mails da lista [hidden email]# Informaçõessobre os comandos disponíveis (em inglês):mande e-mail vazio [hidden email]# Cancelar sua assinatura: mandee-mail vazio para:[hidden email]# Arquivo demensagens:http://listarchives.libreoffice.org/pt-br/usuarios/--Vocêestárecebendo e-mails da lista [hidden email]# Informações sobre os comandos disponíveis (eminglês):mande e-mail vazio para [hidden email]#Cancelar sua assinatura: mande e-mail vaziopara:[hidden email]# Arquivo de mensagens:http://listarchives.libreoffice.org/pt-br/usuarios/; --Você está recebendo e-mails da lista [hidden email]# Informações sobre os comandos disponíveis (em inglês):mande e-mail vazio para [hidden email]# Cancelar sua assinatura: mande e-mail vazio para:[hidden email]# Arquivo de mensagens:http://listarchives.libreoffice.org/pt-br/usuarios/--Você está recebendo e-mails da lista [hidden email]# Informações sobre os comandos disponíveis (em inglês):mande e-mail vazio para [hidden email]# Cancelar sua assinatura: mande e-mail vazio para:[hidden email]# Arquivo de mensagens:http://listarchives.libreof
 fice.org/pt-br/usuarios/
--
Você está recebendo e-mails da lista [hidden email]
# Informações sobre os comandos disponíveis (em inglês):
  mande e-mail vazio para [hidden email]
# Cancelar sua assinatura: mande e-mail vazio para:
  [hidden email]
# Arquivo de mensagens: http://listarchives.libreoffice.org/pt-br/usuarios/
Noelson Duarte Noelson Duarte
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [pt-br-usuarios] IDADE - ajuda para criar procedimento!

In reply to this post by sp24horas
Olá,

Use a expressão:

Idade = ParteInteira((DataAtual - DataNascimento) / 365.2425)

Att.


Em 11 de março de 2012 21:23, sp24horas <[hidden email]> 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 <[hidden email]> 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,[hidden email]: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
> [hidden email]: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
> > [hidden email]# Informações
> >  sobre os comandos disponíveis (em inglês):mande e-mail vazio para
> > [hidden email]# Cancelar sua assinatura: mande
> > e-mail vazio para:[hidden email]# Arquivo de
> > mensagens:http://listarchives.libreoffice.org/pt-br/usuarios/--Você está
> > recebendo e-mails da lista [hidden email]# Informações
> > sobre os comandos disponíveis (em inglês):mande e-mail vazio para
> > [hidden email]# Cancelar sua assinatura: mande
> > e-mail vazio para:[hidden email]# 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
> [hidden email]#Cancelar sua assinatura: mande e-mail
> vazio
> > para:[hidden email]# Arquivo de mensagens:
> > http://listarchives.libreoffice.org/pt-br/usuarios/
> >
> >
> > --
> > Você está recebendo e-mails da lista [hidden email]
> > # Informações sobre os comandos disponíveis (em inglês):
> >  mande e-mail vazio para [hidden email]
> > # Cancelar sua assinatura: mande e-mail vazio para:
> >  [hidden email]
> > # Arquivo de mensagens:
> > http://listarchives.libreoffice.org/pt-br/usuarios/
> >
>
> --
> Você está recebendo e-mails da lista [hidden email]
> # Informações sobre os comandos disponíveis (em inglês):
>  mande e-mail vazio para [hidden email]
> # Cancelar sua assinatura: mande e-mail vazio para:
>  [hidden email]
> # Arquivo de mensagens:
> http://listarchives.libreoffice.org/pt-br/usuarios/
>

--
Você está recebendo e-mails da lista [hidden email]
# Informações sobre os comandos disponíveis (em inglês):
  mande e-mail vazio para [hidden email]
# Cancelar sua assinatura: mande e-mail vazio para:
  [hidden email]
# Arquivo de mensagens: http://listarchives.libreoffice.org/pt-br/usuarios/
Loading...