Re: help: now() + N is now failing!

Поиск
Список
Период
Сортировка
От Stephan Szabo
Тема Re: help: now() + N is now failing!
Дата
Msg-id 20030729102452.P92021-100000@megazone.bigpanda.com
обсуждение исходный текст
Ответ на Re: help: now() + N is now failing!  (Dmitry Tkach <dmitry@openratings.com>)
Ответы Re: help: now() + N is now failing!  (Dmitry Tkach <dmitry@openratings.com>)
Список pgsql-novice
On Tue, 29 Jul 2003, Dmitry Tkach wrote:

> Stephan Szabo wrote:
>
> >On Tue, 29 Jul 2003, Dmitry Tkach wrote:
> >
> >
> >
> >>Yeah... Looks weird.
> >>For some reason, even  date_pli(now(), 2) doesn't work any more - you
> >>have to do date_pli(now()::date,2)
> >>I guess, the now()+2 has the same problem - for some reason, it fails to
> >>coerce timestamptz into date automatically :-(
> >>Why is that? There is only one function called date_pli(), and there is
> >>an unambigous conversion date(timestamptz)... Why does it now force the
> >>user to cast explicitly???
> >>
> >>
> >
> >It's not an implicit cast any longer (see pg_cast).  Implicit casts often
> >result in unexpected behavior.
> >
> >For example, what should now()+2 mean?  Converting to date and adding two
> >days is fairly wierd behavior, I'd much more expect it to say add 2
> >seconds or error.  now() + interval '2 days' or cast(now() as date)+2 both
> >express the intent of adding 2 days much better.
> >
> >
> Ok, granted that, but what's wrong with date_pli (now(), 2)?

It's a similar issue. As a potential counter example, what about
date_pli('foo', 2) or date_pli(inet '1.1.1.1', 2)? There's a cast
from text->date and a cast inet->text. If you allow downcasts and
arbitrary casts you can get some really odd behavior.




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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: help: now() + N is now failing!
Следующее
От: Dmitry Tkach
Дата:
Сообщение: Re: help: now() + N is now failing!