【发布时间】:2014-11-21 07:18:24
【问题描述】:
我会通过一个例子来解释-
假设我有两个日期,我想以年月日期格式查找它们之间的持续时间
start date= 19940412
end date= 20120326
这 17 年 11 个月 14 天的持续时间。
那么我要写什么代码才能在 sas 中得到这个结果?
【问题讨论】:
-
您的日期是按显示的方式存储的,还是按日期和格式存储的 yyyymmdd?
标签: sas
我会通过一个例子来解释-
假设我有两个日期,我想以年月日期格式查找它们之间的持续时间
start date= 19940412
end date= 20120326
这 17 年 11 个月 14 天的持续时间。
那么我要写什么代码才能在 sas 中得到这个结果?
【问题讨论】:
标签: sas
这是您需要的代码:
data _null_;
start_date= '19940412';
end_date= '20120326';
/* convert to sas dates */
start_dt=input(start_date,yymmdd8.);
end_dt=input(end_date,yymmdd8.);
/* calculate difference in years */
years=intck('YEAR',start_dt,end_dt,'C');
/* recalculate start date */
start_dt=intnx('YEAR',start_dt,years,'S');
/* calculate remaining months */
months=intck('MONTH',start_dt,end_dt,'C');
/* recalculate start date */
start_dt=intnx('MONTH',start_dt,months,'S');
/* calculate remaining days */
days=intck('DAY',start_dt,end_dt,'C');
/* results */
put years= months= days=;
run;
这给出了:
years=17 months=11 days=14
【讨论】:
您可以使用 SAS 函数 INTCK
详情请上网搜索
sas function intck
【讨论】: