return: date
lang: plpgsql
parameters:
  p0:
    type: anyelement
  p1:
    type: anyelement
  p2:
    type: anyelement
  p3:
    type: anyelement
strict: STRICT
src: |
  DECLARE
  i_century text;
  i_year text;
  i_month text;
  i_day text;
  return_date date;
  BEGIN
  	i_century = $1;
  	IF (length(i_century ) <= 1) THEN
  		i_century = '0' || i_century;
  	END IF;
  	if i_century = '00' THEN
  		i_century = '00';
  	END IF;
  	i_year = $2;
  	IF (length(i_year ) <= 1) THEN
  		i_year = '0' || i_year;
  	END IF;
  	i_month = $3;
  	IF (length(i_month ) <= 1) THEN
  		i_month = '0' || i_month;
  	END IF;
  	i_day = $4;
  	IF (length(i_day ) <= 1) THEN
  		i_day = '0' || i_day;
  	END IF;
  	if i_day = '00' THEN
  		i_day = '01';
  	END IF;
  	return_date = to_date(i_century || i_year || i_month || i_day, 'YYYYMMDD');
   return return_date;
  END;