CREATE OR REPLACE FUNCTION date_get1(d3 date)
RETURNS date
LANGUAGE plpgsql
AS $function$ declare d int;
declare d1 varchar(100);
declare d2 varchar(100);
declare d4 date;
begin d1 := 'select date''' || d3 || '''';
d :=(
select
extract(dow
from
d3))-1;
d2 := d1 || '-interval ''' || d || ' day '' ';
execute d2
into
d4;
return d4;
end;
$function$
;
注:这里的一星期的开始是星期日;
--2021-06-21
select date_get1(cast('20210626' as date));
--2021-06-28
select date_get1(cast('20210627' as date));