extract('epoch' from age()) returning wrong number of seconds
От | Peter Nelson |
---|---|
Тема | extract('epoch' from age()) returning wrong number of seconds |
Дата | |
Msg-id | 29D4F821F6A75941B4FE0C0AAAE0E7809CA1E6D6@ex01.code42.local обсуждение исходный текст |
Ответы |
Re: extract('epoch' from age()) returning wrong number of seconds
|
Список | pgsql-bugs |
The forth column in this query is returning the wrong value. The last two columns in this query should return the same value, 5270400 (t= he number of seconds in 61 days). Using simple subtraction works fine, but = using the age() function it returns 5184000 seconds (60 days). This same be= havior can be found using other start/end dates and interval lengths, somet= imes age() returns too many seconds, sometimes too few. I did not get any f= ailures below 60 days, but I did not do an exhaustive test of all interval = values and a range of start/end dates. > select version(); version ---------------------------------------------------------------------------= ------------------- PostgreSQL 9.2.6 on x86_64-unknown-linux-gnu, compiled by gcc (Debian 4.7.= 2-5) 4.7.2, 64-bit (1 row) Time: 41.898 ms > select extract('epoch' from ('2013-12-31'::date) - ('2013-12-31'::d= ate - '5184000 seconds'::interval)) as right_answer_subtraction_60_days ,extract('epoch' from age (('2013-12-31'::date) , ('2013-12-31'::d= ate - '5184000 seconds'::interval))) as right_answer_age_60_days ,extract('epoch' from ('2013-12-31'::date) - ('2013-12-31'::d= ate - '5270400 seconds'::interval)) as right_answer_subtraction_61_days ,extract('epoch' from age (('2013-12-31'::date) , ('2013-12-31'::d= ate - '5270400 seconds'::interval))) as wrong_answer_age_61_days; right_answer_subtraction_60_days | right_answer_age_60_days | right_answer= _subtraction_61_days | wrong_answer_age_61_days ----------------------------------+--------------------------+-------------= ---------------------+-------------------------- 5184000 | 5184000 | = 5270400 | 5184000 (1 row)
В списке pgsql-bugs по дате отправления: