Re: Re: Data type confusion

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Re: Data type confusion
Дата
Msg-id 7212.997053557@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: Data type confusion  (Allan Engelhardt <allane@cybaea.com>)
Ответы Re: Re: Data type confusion
Список pgsql-sql
Allan Engelhardt <allane@cybaea.com> writes:
> I don't think it makes conceptual sense to divide intervals....

It is kinda bogus, given the underlying semantics of intervals
(integer months plus float seconds).  The problem already arises
for the existing interval * float8 and interval / float8 operators,
though, so it'd be easy enough to make an interval / interval operator
that is consistent with them.  What those operators do is to convert
any fractional-month result into seconds at an arbitrary conversion
factor of 30 days to the month.  For example, consider

regression=# select '5 months 9 days'::interval;  ?column?    
---------------5 mons 9 days
(1 row)

regression=# select '5 months 9 days'::interval * 0.5;      ?column?       
----------------------2 mons 19 days 12:00
(1 row)

The initial product is effectively 2.5 months plus 4.5 days,
and then we translate the .5 months into 15 days.

This is pretty grotty, and AFAIK not documented anywhere --- I found it
out by looking at the C code for these operators.  But I'm not sure
how to do better.
        regards, tom lane


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

Предыдущее
От: "Josh Berkus"
Дата:
Сообщение: Re: Data type confusion
Следующее
От: Peter Eisentraut
Дата:
Сообщение: Re: Re: Data type confusion