Fórum Como fazer para calcular a idade corretamete #192422
03/11/2003
0
:?: Tenho uma tabela de clientes no meu banco de dados FIREBIRD que possui o campo DATA_NASCIMENTO (TIMESTAMP). Gostaria de saber como fazer para calcular a idade do cliente de forma mais correta possível. Eu fiz na linha da comando da select o seguinte:
SELECT (current_timestamp - data_nascimento)/365 AS idade
FROM clientes
O resultado que a SELECT me retorna como idade dá um número real com casas decimais do tipo 30.52363. Só que o valor que me retorna parece não ser tão preciso assim. Exemplo: Se o cliente nasceu em 30/11/1972 e hoje é 25/11/2003 o resultado já dá 31.0650 quando o correto seria somente 30 anos. Se eu criar um campo calculado dentro do Delphi tem como fazer um calculo mais preciso, por exemplo? Como eu faria isso?
Grato,
André
SELECT (current_timestamp - data_nascimento)/365 AS idade
FROM clientes
O resultado que a SELECT me retorna como idade dá um número real com casas decimais do tipo 30.52363. Só que o valor que me retorna parece não ser tão preciso assim. Exemplo: Se o cliente nasceu em 30/11/1972 e hoje é 25/11/2003 o resultado já dá 31.0650 quando o correto seria somente 30 anos. Se eu criar um campo calculado dentro do Delphi tem como fazer um calculo mais preciso, por exemplo? Como eu faria isso?
Grato,
André
Andremelim
Curtir tópico
+ 0
Responder
Posts
03/11/2003
Marcela
Tente desta forma:
procedure TForm1.Button2Click(Sender: TObject); var sDataNasc : string; DataNasc, DataAtual : TDate; Idade : Tdate; begin sDataNasc := ´30/11/1972´; //data do banco DataNasc := StrToDate(sDataNasc); DataAtual := now; //data atual Idade := (DataAtual - DataNasc); edit1.Text := FormatDateTime(´YY´, idade); end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)