Date: prev next · Thread: first prev next last
2012 Archives by date, by thread · List index


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/

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.