代码之家  ›  专栏  ›  技术社区  ›  jovicbg

将天数添加到SAS datetime格式

  •  1
  • jovicbg  · 技术社区  · 7 年前

    数据集(包括所需列exp\u 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
    

    因此,我需要向datetime添加有效值(天数)。 我刚刚开始使用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任务?

    2 回复  |  直到 7 年前
        1
  •  1
  •   John    7 年前

    这里是一个代码示例,它将打印您想要的结果。和其他答案一样, DTDAY

    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;
    
        2
  •  1
  •   Petr    7 年前

    你绝对是在正确的道路上!因为你正在处理 datetime 值,替换 DAY 通过 dtDAY .

    exp_dt put 函数,而是一种格式(例如。 format exp_dt2 datetime20.; ).