根据最大日期值减去6个月来过滤销售额

时间:2017-07-27 11:08:36

标签: date sas

我正在尝试根据日期过滤器过滤数据。我表中的日期列是date9。格式(30JUN2017)。

我想通过从现有日期减去6个月(即31DEC2017)来过滤日期列。

例如:日期< 31DEC2017

无论如何可以建议如何做到这一点,我也尝试过使用intx函数和其他选项。

感谢您的帮助。

最诚挚的问候, AJ

1 个答案:

答案 0 :(得分:0)

使用格式化的值在SAS中操作日期时,您应将其括在""d中,即在您的示例中,它应为where date<"31DEC2017"d。如果您的日期以date9格式存储为字符串,则可以将其设置为如下日期:where input(date,date9.)<"31DEC2017"d

现在你的问题似乎与其标题略有不同。根据后者,您希望过滤max_date - 6个月,无论数据集中的最大日期是什么。这可以这样做:

proc sql;
  select *
  from t
  where intnx('month',date,6)<(select max(date) from t)
  ;
quit;

但是,出于某种奇怪的原因,通过&#34; max date&#34;你的意思是当前的日期,上面的查询只是变成了这个:

proc sql;
  select *
  from t
  where intnx('month',date,6)<date()
  ;
quit;