Re: Bug #443: Problem with time functions.

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Bug #443: Problem with time functions.
Дата
Msg-id 18965.1000675538@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: Bug #443: Problem with time functions.  (Thomas Lockhart <lockhart@fourpalms.org>)
Список pgsql-bugs
Thomas Lockhart <lockhart@fourpalms.org> writes:
>> timetest=# select  sum(timeend-timebegin) as totaltime from timetest;
>> ERROR:  Unable to select an aggregate function sum(time)

> Hmm. The underlying math works:

> lockhart=# select time '10:01' - time '10:00';
> ----------
>  00:01:00

"Works" is in the eye of the beholder, perhaps.  I would think that the
difference of two times should be an interval (which would allow the
sum() to work, since we have sum(interval)).  But there is no
time-minus-time operator.  What actually appears to be happening is that
the system casts the second time to an interval and then applies the
time-minus-interval operator, yielding a time.  There is no sum(time)
aggregate, and shouldn't be IMHO.

In short, I think the missing piece is not sum(time) but
time-minus-time.  Maybe that's what you think too, but it wasn't clear.

BTW, I'm unconvinced that an implicit cast from time to interval is a
good idea... what's the point of maintaining a datatype distinction
between timestamp-like types and interval-like types if we will allow
implicit casts across that boundary?

            regards, tom lane

В списке pgsql-bugs по дате отправления:

Предыдущее
От: pgsql-bugs@postgresql.org
Дата:
Сообщение: Bug #452: unique indices and multi-row UPDATE problem
Следующее
От: Tom Lane
Дата:
Сообщение: Re: dynamic-static date once again