Skip site navigation (1) Skip section navigation (2)

Re: function date_part

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: PDH(dot)KFI3(at)t-online(dot)de (Andreas Stahlhut)
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: function date_part
Date: 2000-04-11 15:29:31
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-sql
PDH(dot)KFI3(at)t-online(dot)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

In response to

pgsql-sql by date

Next:From: Margarita BarvinokDate: 2000-04-11 15:59:23
Subject: ORDER clause
Previous:From: Angel Manuel Diaz AunionDate: 2000-04-11 15:08:43
Subject: Function

Privacy Policy | About PostgreSQL
Copyright © 1996-2017 The PostgreSQL Global Development Group