Sas 一个日期变量先于另一个日期变量的数据集

Sas 一个日期变量先于另一个日期变量的数据集,sas,Sas,我合并了两个数据集。一个数据集有项目提交的日期,另一个数据集有项目结束的时间。我希望有一个新的数据集,其中只包含结束日期早于提交日期的项目。我基本上是想在我们提交给外部审查之前,确定哪些项目被适当地关闭了。两个日期变量都是date9。格式 数据如下所示(编辑:没有丢失的日期) 我使用了一个简单的where语句,但我仍然没有看到错误的日期。我使用的代码如下: data correctsubmission; set projects; where end_date < submit_date;

我合并了两个数据集。一个数据集有项目提交的日期,另一个数据集有项目结束的时间。我希望有一个新的数据集,其中只包含结束日期早于提交日期的项目。我基本上是想在我们提交给外部审查之前,确定哪些项目被适当地关闭了。两个日期变量都是date9。格式

数据如下所示(编辑:没有丢失的日期)

我使用了一个简单的where语句,但我仍然没有看到错误的日期。我使用的代码如下:

data correctsubmission;
set projects;
where end_date < submit_date;
run;
数据提交;
设置项目;
其中结束日期<提交日期;
跑

有什么想法吗?

确保变量中确实包含日期

data have;
  input Service Submission_date End_date ;
  informat Submission_date End_date mmddyy.;
  format Submission_date End_date yymmdd10.;
cards;
1       1/1/2010        2/1/2009
2       2/1/2010        12/31/2010
3       5/1/2012        3/1/2010
;
它们应该是数字变量,包含自1960年以来的天数。最好使用日期格式(如日期、YYMMDD等),以便人类可以读取显示的值

还要确保考虑缺少的值

data want;
  set have;
  where .Z < end_date < submission_date;
run;

如果缺少
结束日期
,则该日期将小于
提交日期
。SAS将所有缺少的值视为小于任何实际值。此实例中不缺少我的任何日期是提交日期还是提交日期?因为在这个问题上你两者都有。此外,我建议使用日期常量代替结束日期测试代码,并分别提交结束日期,以检查SAS是否正确识别每个变量(例如,结束日期<'2010年1月1日)。日志输出中有任何警告或注释吗?谢谢,但没有遗漏日期。
data want;
  set have;
  where .Z < end_date < submission_date;
run;
data want ;
 set have;
 where Submission_date > End_date ;
run;