将命令行中的日期字符串转换为日期时间

时间:2019-11-20 14:15:51

标签: sas

我想将以下日期字符串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;

如何读取此环境变量并将其转换为日期时间宏变量?

1 个答案:

答案 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

相关问题