SAS合并日期和时间

时间:2014-10-09 09:33:36

标签: date time merge format sas

我正在尝试根据日期和时间合并两个数据集。

在两组中,日期为date9。格式和时间是时间5。格式。

我认为如下所示的简单合并就足够了。

我猜SAS正在将日期作为日期时间和以秒为单位的时间。

data test;
merge JRA_UK_July_spot (in=a)
UK_surveys_30plus (in=b);
by date time_num;
if a and b;
run;

我在合并表中没有记录。

注意:从数据集WORK.JRA_UK_JULY_SPOT中读取了19517个观测值。 注意:从数据集WORK.UK_SURVEYS_30PLUS中读取了114235个观测值。 注意:数据集WORK.TEST有0个观察值和14个变量。

我知道有些记录应该匹配。

来自表格

time_num   date
9:07       01JUL2014
9:07       01JUL2014

来自表b

date        time_num
01JUL2014   9:07
01JUL2014   9:07
01JUL2014   9:07

可能与日期/时间的存储方式有关吗?例如,9:07可能是9:07:34那不是与另一个可能是9:07:11相匹配的东西吗?

1 个答案:

答案 0 :(得分:2)

这里的困难在于,时间不仅仅是小时和分钟,而是秒数 - 即使格式中没有显示。

要解决此问题,我只需使用圆函数将sas时间舍入到最接近的60(即最近的分钟);

time_round=round(put(time_num, best12.), 60);

然后我在time_round上合并(这是从午夜开始的一个sastime,例如5940)

这样做解决了上述合并问题。