Sas 将日期字符串从命令行转换为日期时间
我想将以下日期字符串Sas 将日期字符串从命令行转换为日期时间,sas,Sas,我想将以下日期字符串export v_date=“20180101”转换为SAS中的日期时间: /* 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; 使用导出v_date=“20
export v_date=“20180101”
转换为SAS中的日期时间:
/* 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;
使用导出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;
如何读取此环境变量并将其转换为datetime宏变量?请注意调用您在宏变量中编写的输入函数和值。此外,若要在datetime中转换日期,请使用函数
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
V_DT2=01月18:00:00:00
%put &=v_dt2;