【发布时间】:2018-07-16 18:46:17
【问题描述】:
我想将 SAS 数据集中的数据附加到 MS Access 数据库中的表中。过去,我使用 SQL INSERT INTO 语句来执行此操作,但在将 SAS 日期字段插入 MS Access 日期/时间字段时遇到了一些问题。这是我在 SAS 程序中尝试做的一个想法:
libname input "c:\Folder";
libname db access 'C:\Folder\database.accdb';
Proc SQL;
Create table tblAccess as
Select distinct field1, field2, DOS
from input.dat1;
PROC SQL;
Insert into db.tblClaims (field1, field2, DOS)
select field1, field2, DOS
from work.tblAccess;
问题在于 DOS 字段在 MS Access 数据库中显示为“1/1/1960 5:52:XX AM”,而不管 DOS 最初是什么。显然,问题在于 SAS 日期作为日期时间输入到 MS Access - SAS 日期 2017 年 12 月 10 日被存储为数字 21163,它作为 21,163 秒插入到 MS Access 数据库中(~ 5 小时 52 分钟)从 1960 年 1 月 1 日开始。换句话说,在此过程中的某个地方,我的日子被视为秒,把一切都扔掉,如果这有意义的话。
但是,虽然我理解了这个问题,但我似乎无法弄清楚如何解决它。或者,我很感激有关其他方法来避免此日期/时间字段问题的处理此任务的建议。据我所知,PROC EXPORT 不起作用,因为导出的 SAS 数据集替换了 MS Access 表并且不能附加到它,至少从我的实验来看是这样。
编辑:SAS 字段是 DATE9。如果相关的话,MS Access 字段是日期/时间。
【问题讨论】: