我如何从今天SAS分配负1 /昨天

时间:2019-06-18 15:31:33

标签: sas sas-macro

我对SAS感到困惑。

例如

%let fdate = %sysfunc(today(),EURDFDE9.);

显示2019年6月18日

我想昨天像2019年6月17日那样演出

我尝试将-1设置为无效,但是我该如何编码?

1 个答案:

答案 0 :(得分:1)

请注意,%sysfunc(today(),EURDFDE9.)的结果是字符串 18JUN2019。您不能从中减去1。但是,today()是一个数值,因此,如果您存储此值,则可以随后减去1。请注意,宏变量存储为字符串,因此即使fdate是数字字符串,您也需要%eval进行减法。

%let fdate=%sysfunc(today());
%put %sysfunc(putn(&fdate,EURDFDE9.));
%let ydate=%eval(&fdate-1);
%put %sysfunc(putn(&ydate,EURDFDE9.));