Subject Re: [firebird-support] age calculation
Author Helen Borrie
At 11:47 AM 21/10/2006, you wrote:
>Hello all.
>
>I have a question about how to calculate the correct age of a person
>using the date of birth. I'm trying something like this:
>
>select
>cast('10/20/2005' as date) AS CURRENTDATE
>,(cast((current_date - cast('10/21/1974' as date)) as float)/365) as
>YEARS_OF_LIFE_OF_PERSON
>from rdb$database;
>
>In this query, I subtract from the current date (october 20, 2006 in
>this case) the DOB (october 21, 1974). It should give me a number just
>below 32, but I get 32.0191780821918
>
>I thought it was a rounding error, that is why I started casing to FLOAT.
>
>What am I doing wrong?

Primarily, you have forgotten about leap years! The result (in terms
of days converted to years) is correct - it is your expectation that
is wrong. :-)

./heLen