Here are the 2 functions I have at the moment. I was wondering if
someone had a better way?
CREATE OR REPLACE FUNCTION month_start (date)
RETURNS date
AS '
DECLARE
day ALIAS FOR $1;
BEGIN
RETURN day - (extract(''day'' FROM day)||'' days'')::interval +
''1 day''::interval;
END;
'
LANGUAGE 'plpgsql';
CREATE OR REPLACE FUNCTION month_end (date)
RETURNS date
AS '
DECLARE
day ALIAS FOR $1;
month int;
year int;
BEGIN
month := extract(''month'' FROM day);
year := extract(''year'' FROM day);
IF month = 12 THEN
month := 1;
year := year +1;
ELSE
month := month +1;
END IF;
RETURN (''01-''||month||''-''||year)::date -
''1 day''::interval;
END;
'
LANGUAGE 'plpgsql';
--
David Stanaway