选择月份的第一个日期

时间:2013-07-24 09:48:07

标签: date sas

我有一个带有大量观察结果的sasdataset,其中一个变量称为DATO。

此变量包含将观察添加到数据集的日期。

以前我使用过以下内容:

WHERE (DATE() - DATO) < 250;    

选择要打印的观察,但这会带来问题。以前我每月添加观察,但现在我每天都这样做。

我需要找到一种方法,只打印出过去8个月第一天的观察结果。

我可以找出8个月的问题,但不知道如何只选择该月的第一天。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

data _null_;
infile cards;
input DATO:date9.;
if day(DATO)=1 /* first of the month */
    and DATO>intnx('MONTH',date(),-8) /* returns date shifted back 8 months */
    then put DATO= date9.;
cards;
01JAN2013
02JAN2013
01FEB2013
01MAR2013
03MAR2013
;run;

结果:

DATO=01JAN2013
DATO=01FEB2013
DATO=01MAR2013