【问题标题】:Import date/time field in 'DD/MM/YYYY HH:MM:SS' format in SAS在 SAS 中以 'DD/MM/YYYY HH:MM:SS' 格式导入日期/时间字段
【发布时间】:2021-06-21 14:48:20
【问题描述】:

我有一个 .csv 或 .txt 文件,其中包含一个日期/时间戳字段。 它在 CSV 文件中看起来像“DD/MM/YYYY HH:MM:SS”。当我从 txt 而不是 .csv 加载此文件时,我可以看到 .csv 文件没有显示的尾随小数秒。

我希望将该字段作为日期/时间字段 'DD/MM/YYYY HH:MM:SS'(日期和时间之间的两个空格)读取,但找不到要使用的正确格式。

我正在尝试将此字段格式化为可用格式,并尝试了多种格式类型,例如DATETIME19.、ANYDTM等,我也尝试了图片格式https://communities.sas.com/t5/SAS-Data-Management/Timestamp-format-of-YYYY-MM-DD-HH-MM-SS/m-p/314667#M8994>

我目前将该字段作为字符读入,但无法对数据进行切片。以下数据仅作为示例显示,我目前正在从文本文件中读取。


DATA = '2020-08-24 10:49:17.8653230'

DATA ENTITY;
INFILE ENT
    DELIMITER='09'x
    DSD
    FIRSTOBS=2
    TRUNCOVER;

FORMAT CreatedOn $19.;
INPUT CreatedOn $;
RUN;

OUTPUT = '2020-08-24 10:49:17'

我浏览了很多在线资源,但一定是遗漏了一些东西,因为我无法做出任何我尝试过的工作。 我希望这些字段被识别为DD/MM/YYYY HH:MM:SS 格式的日期和时间字段,而不是字符字段。

我正在运行基本 SAS 9.4.2

提前致谢!

【问题讨论】:

  • 您如何检查您的文件? Excel 会解释您的数据,因此它不是 CSV 数据的可靠查看器。请注意,CSV 文件是具有 csv 扩展名的文本文件,因此应该没有真正的区别。
  • 最近有人问了一个非常相似的问题,这不是标准的日期格式 - 所以你需要滚动自己的日期信息,然后将其导入或作为字符导入,阅读日期/分开时间部分,然后将它们组合起来。 communities.sas.com/t5/Statistical-Procedures/SAS-datetime/m-p/…
  • 你的风格是什么?您问题中的 DMY 顺序还是代码块中的 YMD 顺序?您的问题是否正确地将字符串转换为自 1960 年以来的秒数?或者您只是在以同样令人困惑的 DMY HMS 样式显示生成的日期时间值时遇到问题?
  • @Reeza,感谢您提供关于 excel 和 txt 的信息。我只切换回文本文件,遇到日期/时间字段的格式问题,一旦打开 .csv 文件,它就会转换格式。您发送给我的链接有效并且显示“01JUL2020:15:12:58”我可以使用不同的日期时间格式而不是 datetime19。这会将所有元素格式化为数字。即'01052020:15:12:58', DDMMYYY:HH:MM:SS'
  • @Tom,我的代码和数据中的欧洲 DMY 订单。我在将长 DDMMYYYY:HH:MM:SS 格式化为日期时间字段而不是字符串时遇到问题。

标签: date datetime sas format


【解决方案1】:

使用 anydtdtm 对我来说很好导入。

data demo;
example_date = '2020-08-24 10:49:17.8653230';
want = input(example_date, anydtdtm.);
format want datetime22.;
run;

proc print;run;

【讨论】:

  • 390194 FORMAT CreatedOn datetime22.; ----------- 48 错误 48-59: 格式 $DATETIME 未找到或无法加载。
  • 我的 SAS 版本似乎没有这种格式类型,这是我一直在尝试其他格式的问题。
  • 您的特定 SAS 版本是什么,这是使用应在所有产品中提供的基本 SAS 概念。这工作并在 SAS 9.4M6 中进行了测试。您的错误表示字符格式/变量,因此您应该显示完整的代码和日志。
猜你喜欢
  • 1970-01-01
  • 2015-10-08
  • 1970-01-01
  • 2020-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-09
  • 2015-11-03
相关资源
最近更新 更多