首页 > 解决方案 > 我可以标准化/转换日期时间中的数据以具有相同的“分钟”吗?

问题描述

我是一名使用 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

请注意,除了 SAME DATETIME(但不是分钟)之外,表 A 和表 B 将具有不同的列。

当我合并这两个表时,我想忽略分钟,或者将其标准化为 01:00:00。

有没有办法这样做?

目前,如果我要合并这两个表,我将有“重复”(我的意思是同一天但由于不同的分钟而不同的记录/结果)。

想象一下,在表 A 中,我有一个名为 Age 表 B 的列,我有一个名为 Net Worth 的列。

当我合并这 2 个表时,我希望该表有 2010-Jan-01 01:00:00 的 1 条单行记录,其中包含年龄和净值。

但是,当日期时间不匹配时,他们将有一个新的记录,其年龄包含值但空白净值或类似。

就如何实现这一目标寻求您的帮助。

标签: sas

解决方案


intnx您可以在匹配之前使用该函数截断到最近的小时:

data _null_;
  mydatetime = datetime();
  mydatehour = intnx('dthour',mydatetime, 0, 'b');
  put mydatetime= is8601dt. / mydatehour= is8601dt.;
run;

推荐阅读