 | CREATE FUNCTION NEXT_DAY(DATE,CHAR) RETURNS DATE AS ' DECLARE ret DATE; BEGIN IF $2 = ''日'' THEN SELECT next_day($1,0) INTO ret; END IF; IF $2 = ''月'' THEN SELECT next_day($1,1) INTO ret; END IF; IF $2 = ''火'' THEN SELECT next_day($1,2) INTO ret; END IF; IF $2 = ''水'' THEN SELECT next_day($1,3) INTO ret; END IF; IF $2 = ''木'' THEN SELECT next_day($1,4) INTO ret; END IF; IF $2 = ''金'' THEN SELECT next_day($1,5) INTO ret; END IF; IF $2 = ''土'' THEN SELECT next_day($1,6) INTO ret; END IF; RETURN RET; END; ' LANGUAGE 'plpgsql';
CREATE FUNCTION NEXT_DAY(DATE,INT) RETURNS DATE AS ' DECLARE c ALIAS FOR $1; p NUMERIC; q ALIAS FOR $2; ret DATE; BEGIN SELECT date_part(''dow'', c ) INTO p; IF (q-p)>0 THEN ret = c + (q-p)||'' days''; ELSE ret = c + ((q-p)+7)||'' days''; END IF; RETURN RET; END; ' LANGUAGE 'plpgsql'; |
|