Re: Bug #605: timestamp(timestamp('a timestamp)) no longer works

Поиск
Список
Период
Сортировка
От Thomas Lockhart
Тема Re: Bug #605: timestamp(timestamp('a timestamp)) no longer works
Дата
Msg-id 3C7F9B47.184FAE8@fourpalms.org
обсуждение исходный текст
Ответ на Bug #605: timestamp(timestamp('a timestamp)) no longer works  (pgsql-bugs@postgresql.org)
Ответы Re: Bug #605: timestamp(timestamp('a timestamp)) no longer works  (Andrew McMillan <andrew@catalyst.net.nz>)
Список pgsql-bugs
> timestamp(timestamp('a timestamp)) no longer works
> I do this reasonably often in my code by way of being paranoid
> that I might have a date, or a time, where I for sure _really_
> want it to be a timestamp...
> pcnz=# select timestamp('2002-03-01'::timestamp);
> ERROR:  parser: parse error at or near "'"

You *can* coerce timestamps to be timestamps, but in 7.2 non-standard
syntax no longer works to do this. The reason is that "timestamp(p)" now
follows the SQL9x usage of defining a timestamp type with precision "p".
So trying to call a function "timestamp()" no longer works as it did.

You can use SQL9x syntax for the type coersion:

  select cast('2002-03-01'::timestamp as timestamp);

or (not recommended) you can cheat and force the call to the function by
surrounding it in double-quotes:

  select "timestamp"('2002-03-01'::timestamp);

hth

                      - Thomas

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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Bug #605: timestamp(timestamp('a timestamp)) no longer works
Следующее
От: "Michael G. Martin"
Дата:
Сообщение: Re: Indexes not always used after inserts/updates/vacuum analyze