Hello. I wrote a little stored function to simulate the EXTRACT(YEAR_MONTH ...) from mySQL. //--------------------------------- CREATE OR REPLACE FUNCTION "BiSCAT_combined".extractyearmonth(date timestamp without time zone) RETURNS character varying AS $BODY$ DECLARE i INTEGER; BEGIN i := EXTRACT(MONTH FROM $1 ::timestamp); if i > 9 THEN RETURN EXTRACT(YEAR FROM $1 :: timestamp) || EXTRACT(MONTH FROM $1 :: timestamp); else RETURN EXTRACT(YEAR FROM $1 ::timestamp) || 0 || EXTRACT(MONTH FROM $1 :: timestamp); end if; END; $BODY$ LANGUAGE 'plpgsql' IMMUTABLE STRICT; //-------------------- One Method call requires 53ms. I'm sure that this function is absolutely unoptimezed but I think 53ms is too long. Are there any suggestions to improve the execution time of the function. Best regards Andi Kendlinger ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match