%let rundate =17AUG2O1O;
%macro to_date(olddate);
year(&olddate) * 10000 + month(&olddate) * 100 + day(&olddate)
%mend;
%macro get_data(rundate);
%put &rundate;
data _null_;
call symput('sys_tm', left(%to_date("&rundate"d)));
run;
%put &sys_tm;
%mend;
%get_data(&rundate);
--------------------------------------
%put &rundate; 结果是17AUG2O1O
但是 %put &sys_tm; 结果椒20020817
实在不知道为什么,麻烦哪位高手解答一下~~