On 08/29/2013 01:11 PM, Andreas Kretschmer wrote:
> is there a bug in age()?
>
> test=*# select *, age(birthday), age (current_date-1, birthday) from birthday ;
> id | birthday | age | age
> ----+------------+---------+-------------------------
> 1 | 2010-08-29 | 3 years | 2 years 11 mons 30 days
> (1 row)
>
> Time: 0,322 ms
> test=*# select * from birthday where age(birthday) != age (current_date-1, birthday);
> id | birthday
> ----+----------
> (0 rows)
>
> '3 years' != '2 years 11 mons 30 days', but i got 0 rows, why?
>
>
> I'm using 9.2.4.
>
>
>
>
> Andreas
Seems correct to me.
select current_date, current_date -1 as yesterday,
age('2010-08-28'::date), age(current_date -1, '2010-08-28'::date);
+------------+------------+---------------+---------+
| date | yesterday | age | age |
+------------+------------+---------------+---------+
| 2013-08-29 | 2013-08-28 | 3 years 1 day | 3 years |
+------------+------------+---------------+---------+
(1 row)
select version();
+---------------------------------------------------------------------------------------------------------------+
| version |
+---------------------------------------------------------------------------------------------------------------+
| PostgreSQL 9.3beta2 on x86_64-unknown-linux-gnu, compiled by gcc
(Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3, 64-bit |
+---------------------------------------------------------------------------------------------------------------+
(1 row)