将天数添加到 SAS 日期时间格式
Add a number of days to SAS datetime format
我需要有关 SAS 日期时间格式的帮助。
数据集(包括所需列 exp_dt):
datetime valid exp_dt
4OCT2017:13.00.00 1 5OCT2017:13.00.00
4OCT2017:15.20.00 7 11OCT2017:15.20.00
6OCT2017:08.00.00 30 5NOV2017:08.00.00
因此,我需要向日期时间添加有效值(天数)。
我刚开始使用 SAS Base,我不确定是否可以接受任何其他日期时间格式。
我试过这个,但不确定是否朝着正确的方向前进:
PlannedSchedTime = datetime ;
Postunit = 'DAY' ;
postval = valid ;
exp_dt = put(intnx(Postunit,PlannedSchedTime,postval,'same'),datetime20.);
put exp_dt= ;
run;
此外,我正在 SAS Enterprise Guide 中处理项目,所以也许有更简单的方法来完成 GUI 任务?
你绝对是在正确的道路上!因为您正在处理 datetime
值,所以将 DAY
替换为 dtDAY
。
如果您不希望 exp_dt
成为字符列,请不要使用 put
函数,而是使用格式(例如 format exp_dt2 datetime20.;
)。
这里是一个代码示例,可以打印您想要的结果。与其他答案状态一样,DTDAY
将告诉 SAS 在基值为日期时间而不是日期时添加天数。
data datetimes;
informat datetime anydtdtm. valid best12.;
format datetime datetime20.;
input datetime valid;
cards;
4OCT2017:13.00.00 1
4OCT2017:15.20.00 7
6OCT2017:08.00.00 30
;
run;
data datetimes_added;
set datetimes;
format exp_dt datetime20.;
exp_dt = intnx('DTDAY',datetime,valid,'SAME');
put exp_dt = ;
run;
我需要有关 SAS 日期时间格式的帮助。 数据集(包括所需列 exp_dt):
datetime valid exp_dt
4OCT2017:13.00.00 1 5OCT2017:13.00.00
4OCT2017:15.20.00 7 11OCT2017:15.20.00
6OCT2017:08.00.00 30 5NOV2017:08.00.00
因此,我需要向日期时间添加有效值(天数)。 我刚开始使用 SAS Base,我不确定是否可以接受任何其他日期时间格式。 我试过这个,但不确定是否朝着正确的方向前进:
PlannedSchedTime = datetime ;
Postunit = 'DAY' ;
postval = valid ;
exp_dt = put(intnx(Postunit,PlannedSchedTime,postval,'same'),datetime20.);
put exp_dt= ;
run;
此外,我正在 SAS Enterprise Guide 中处理项目,所以也许有更简单的方法来完成 GUI 任务?
你绝对是在正确的道路上!因为您正在处理 datetime
值,所以将 DAY
替换为 dtDAY
。
如果您不希望 exp_dt
成为字符列,请不要使用 put
函数,而是使用格式(例如 format exp_dt2 datetime20.;
)。
这里是一个代码示例,可以打印您想要的结果。与其他答案状态一样,DTDAY
将告诉 SAS 在基值为日期时间而不是日期时添加天数。
data datetimes;
informat datetime anydtdtm. valid best12.;
format datetime datetime20.;
input datetime valid;
cards;
4OCT2017:13.00.00 1
4OCT2017:15.20.00 7
6OCT2017:08.00.00 30
;
run;
data datetimes_added;
set datetimes;
format exp_dt datetime20.;
exp_dt = intnx('DTDAY',datetime,valid,'SAME');
put exp_dt = ;
run;