我可以标准化/转换日期时间中的数据以具有相同的“分钟”吗?

时间:2018-09-18 08:01:51

标签: sas

我是使用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包含值,但净值等于空白。

寻求有关如何实现该目标的帮助。

2 个答案:

答案 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