proc sql 内的 SAS 日期操作

SAS date operation within proc sql

我是 SAS 新手,正在尝试修改这段代码

proc sql;
select a, Current_Date - 2 - b as some_date
from table

Current_Date 是 sas 中的一个函数。我正在尝试用我自己的日期替换它。 a 和 b 是我正在连接的数据库中的列名。我尝试将 Current_Date 更改为 '12nov2013'd,但它似乎不起作用。

我试过了:

1.

%let startFrom = '12nov2013'd;
proc sql;
  select a, &startFrom - 2 - b as some_date
from table

这行不通。

2.

proc sql;
  select a, input('12nov2013',date9.) - 2 - b as some_date
from table

这行不通

我应该如何在SAS中进行这个日期操作

3.

proc sql;
  select a, intck('DAY','19nov2015'd,rqo_tran_date_alt) as TranMonth
from table

这也不行

您的第一个示例并没有真正的问题,尽管它可以改进。

%let startFrom = '12nov2013'd;

data have;
  input a $ b;
  datalines;
Zero 0
Five 5
Ten 10
Hundred 100
;;;;
run;


proc sql;
  select a, &startFrom - 2 - b as some_date format=date9.
  from have;
quit;

添加格式通常很有帮助,但不是必需的。这假设 b 是一个 数字 变量,其中包含 天数 。如果它包含其他任何内容,或者是字符,则不一定会给您正确的结果。