我想将以下日期字符串export v_date="20180101"
转换为SAS中的datetime:
/* test.sas */
%let v_date = %sysget(v_date);
%put &=v_date;
data _null_;
format v_dt yymmddn8.;
v_dt = input(&v_date.);
call symput('v_dt', v_dt);
run;
%put &=v_dt;
运行export v_date="20180101"; /sas/scripts/sas test.sas
但是我得到这个错误:
1 %let v_date = %sysget(v_date);
2 %put &=v_date;
V_DATE=20180101
3
4 data _null_;
5 format v_dt yymmddn8.;
6 v_dt = input(&v_date.);
_
388
76
ERROR 388-185: Expecting an arithmetic operator.
ERROR 76-322: Syntax error, statement will be ignored.
7 call symput('v_dt', v_dt);
8 run;
如何读取此环境变量并将其转换为日期时间宏变量?
答案 0 :(得分:2)
请注意调用您在宏变量中编写的输入函数和值。另外,如果要转换日期时间,请使用dhms函数。
data _null_;
format v_dt datetime.;
v_dt = dhms(input("&v_date",yymmdd8.),0,0,0);
call symput('v_dt1', v_dt);
call symput('v_dt2', vvalue(v_dt));
run;
输出:
%put &=v_dt1;
V_DT1 = 1830384000
%put &=v_dt2;
V_DT2 = 01JAN18:00:00:00