【问题标题】:Convert date string from command line to datetime将日期字符串从命令行转换为日期时间
【发布时间】:2019-11-20 14:15:51
【问题描述】:

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

使用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;

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

【问题讨论】:

    标签: sas


    【解决方案1】:

    请注意调用宏变量中写入的输入函数和值。另外,如果你想将日期转换为日期时间,请使用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

    【讨论】:

      猜你喜欢
      • 2015-09-17
      • 2021-05-31
      • 2019-04-12
      • 2011-09-08
      • 2015-03-24
      • 2011-05-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多