【发布时间】:2019-08-22 16:18:21
【问题描述】:
正如标题所述,我在将日期时间从 Excel 导入 SAS 时遇到问题。问题似乎与秒有关:
这是来自 excel 的示例数据:
我的日期时间:
这是原始的 excel 数字:
编辑2:
43417.58657407
43417.58656250
当我将它们导入 SAS 时,SAS 是这样显示它们的:
13NOV2018:14:04:39
13NOV2018:14:04:39
和数值:
1857737079
1857737079
我试图弄清楚如何让 SAS 正确读取秒数。我正在使用 proc import,这是我的代码:
proc import
out = MyDSOutput
datafile= MyDSInput
dbms = EXCEL replace;
sheet = "page";
getnames = yes;
mixed = yes;
scantext = yes;
usedate = no;
scantime = yes;
textsize = 32767;
;
run;
编辑:我应该补充一点,将其转换为 CSV 确实不是一种选择,因为我有 >15 位的数字 ID,而 Excel 会将任何 >15 位的数字转换为 0。
EDIT2:添加了原始 excel 数字的扩展版本
【问题讨论】:
-
您是否尝试使用 XLSX 数据库引擎(或 XLS,如果这是您拥有的 Excel 文件类型)而不是 EXCEL 引擎?
-
您能否要求 Excel 为其存储的实际值显示更多小数位?并作为文本而不是图片粘贴到您的问题中。
-
@Tom 没试过 XLSX 引擎,我现在正在研究。我确实更新了帖子以包含 excel 存储的所有数字。
-
如果您只将一天中的时间部分存储为工作表中自己的列,会发生什么情况?这是否会在当天的同一秒出现并显示?
-
@Tom 我将 proc 导入从 dbms = excel 更改为 dbms = xlsx,这似乎解决了这个问题。我还通过 libname 语句尝试了 XLSX 引擎,这似乎可以解决问题。不过,我可能会坚持使用 proc import。谢谢!
标签: excel date datetime import sas