Re: function date_part

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: function date_part
Дата
Msg-id 1024.955466971@sss.pgh.pa.us
обсуждение исходный текст
Ответ на function date_part  (PDH.KFI3@t-online.de (Andreas Stahlhut))
Список pgsql-sql
PDH.KFI3@t-online.de (Andreas Stahlhut) writes:
> If I use this in a create table like
>     create table primtab(
>        primkey
>             int4 
>     primary key
>             default 
>             int4(date_part('year', 'now'::datetime) * 1000+nextval('serial_seq'))
>     ); 
> it never works.
>     ERROR:  parser: parse error at or near "'"

The default-value support in 6.5.* is pretty limited, not to say broken;
I think it is probably failing on the '::datetime' part of that
expression.  7.0 copes just fine.  As a workaround for 6.5, you might
try writing date_part('year', now()) instead.

> If I use it in a create function like
>     create function primfnc() returns int4
>       as 'select .... as primnum'
>       language 'sql';
> it never works.
>     ERROR:  parser: parse error at or near "year"

This is probably pilot error.  Did you remember to double the ' symbols
in the body of the function definition?  Remember the body is itself
a single-quoted string, so any embedded quote marks must be written ''
(or \' if you prefer).
        regards, tom lane


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

Предыдущее
От: Angel Manuel Diaz Aunion
Дата:
Сообщение: Function
Следующее
От: Margarita Barvinok
Дата:
Сообщение: ORDER clause