When i tried that, i got the following error: create or replace function fcn_max_dt(p_dt timestamp without time zone, p_dt2 timestamp without time zone) returns timestamp without time zone as $$
BEGIN v_dt := p_dt; v_dt2 := p_dt2; if v_dt >= v_dt2 then return v_dt; else return v_dt2; end if; END; $$ LANGUAGE 'plpgsql'; ERROR: syntax error at or near "v_dt" at character 1 QUERY: v_dt := $1 CONTEXT: SQL statement in PL/PgSQL function "fcn_max_dt" near line 3 ********** Error ********** ERROR: syntax error at or near "v_dt" SQL state: 42601 Context: SQL statement in PL/PgSQL function "fcn_max_dt" near line 3 On Tue, Sep 9, 2008 at 11:07 AM, Scott Marlowe <[EMAIL PROTECTED]>wrote: > On Tue, Sep 9, 2008 at 11:55 AM, Ruben Gouveia <[EMAIL PROTECTED]> > wrote: > > Does this syntax look correct? Can anyone think of a better way to write > > this? > > > > This function will accept two timestamp parameters and determine the > highest > > of the two? > > > > create or replace function fcn_max_dt(p_dt timestamp without time zone, > > p_dt2 timestamp without time zone) > > returns timestamp without time zone as $$ > > DECLARE > > v_dt timestamp without time zone; > > v_dt2 timestamp without time zone; > > > > BEGIN > > v_dt := p_dt; > > v_dt2 := p_dt2; > > > > if v_dt >= v_dt2 then > > return v_dt; > > else > > return v_dt2; > > end if; > > > > END; > > $$ LANGUAGE 'plpgsql'; > > It certainly works, but there's no real need for the declarations. > This works just as well: > > create or replace function fcn_max_dt(p_dt timestamp without time zone, > p_dt2 timestamp without time zone) > returns timestamp without time zone as $$ > > BEGIN > if p_dt >= p_dt2 then > return p_dt; > else > return p_dt2; > end if; > > END; > $$ LANGUAGE 'plpgsql'; >