天天看点

postgresql获取指定日期所在星期的星期一

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));
           

继续阅读