如果给定年月,如 201704,怎么用SQL函数取该月份的第一天和最后一天,显示如

2021-03-17 18:35:19 字数 706 阅读 9667

1楼:匿名用户

oracle 可以写个函数

create or replace function sf_getymd

(pi_rq0000 in varchar2, --日期

pi_bs0000 in varchar2 --标示 0,1,2

)return varchar2

asls_return varchar2(8);

begin

if pi_rq0000 is null then

ls_return := to_char(sysdate,'yyyymmdd');

elsif pi_bs0000='0' then

ls_return := substr(pi_rq0000,1,6)||'01';

elsif pi_bs0000='1' then

ls_return := to_char(last_day(to_date(pi_rq0000,'yyyy-mm')),'yyyymmdd');

elsif pi_bs0000='2' then

ls_return := to_char(last_day(add_months(to_date(pi_rq0000,'yyyy-mm'),-1)),'yyyymmdd');

end if;

return ls_return;

end sf_getymd;