我是使用SAS Data Integration Studio的SAS开发人员。
当前我有一个方案,其中许多excel选项卡中的数据具有不同的时间值(分钟)。例如
Tab A will have datetime
2010-Jan-01 01:00:00
2010-Jan-02 01:00:00
2010-Jan-03 01:00:00
Tab B will have datetime below:
2010-Jan-01 01:25:00
2010-Jan-02 01:25:00
2010-Jan-03 01:25:00
请注意,表A和表B的SAME DATETIME(而不是分钟)将具有不同的列。
当我合并这两个表时,我想忽略分钟,或者将其标准化为01:00:00。
有办法吗?
当前,如果我要合并这两个表,则将具有“重复”(我的意思是同一天,但由于分钟的不同,记录/结果也不同)。
想象一下在表A中,我有一列称为Age 在表B中,我有一列称为净值。
当我合并这2个表时,我期望该表具有1个2010年1月1日1:00:00的单行记录,其中包含年龄和净值。
但是,当日期时间不匹配时,他们将创建一个新记录,其中Age包含值,但净值等于空白。
寻求有关如何实现该目标的帮助。
答案 0 :(得分:2)
您可以在匹配之前使用intnx
函数将时间截断到最近的小时:
data _null_;
mydatetime = datetime();
mydatehour = intnx('dthour',mydatetime, 0, 'b');
put mydatetime= is8601dt. / mydatehour= is8601dt.;
run;
答案 1 :(得分:1)
有一个功能DATEPART(datetime)
示例:
data _null_;
conn='01feb94:8:45'dt;
servdate=datepart(conn);
dhms = dhms(datepart(conn),hour(conn),0,0);
put dhms datetime.;;
run;
记录日志
01FEB94:08:00:00