在SAS中导入CSV数据时如何设置正确的日期格式?

问题描述 投票:1回答:1

我正在使用SAS EG中的Data Step导入CSV数据。在CSV中,我有一个日期列。该日期将于2019年2月20日格林威治标准时间12:25:27发布

代码: -

Data Test;
infile 'Test,csv';
informat Date_Column date26.;
format Date_Column datetime26.;
run;

运行此代码时,我的日期为01JAN1960:05:59:23。我尝试过不同的格式,但有时我只会得到日期,有时会出错。

任何方式得到正确的日期为20-02-2019 12:25:27?

sas
1个回答
2
投票

我不知道有任何办法处理SAS的“GMT”。理想情况下,如果您需要处理来自不同时区的日期时间,我建议您根据ISO8601结构在CSV中获取日期时间。

如果GMT无关紧要,您可以使用“ANYDTDTM20”。阅读专栏。

您描述的格式不存在。 SAS有很多接近的格式,你可以找到它们here。我们来看看“datetime20”。例如。

如果您确实需要这种特定格式,那么您将需要处理单独的日期和时间,并在文本变量中“手动”格式化。

你可以试试这段代码:

data test;

/* input date and time in text format */
in = '20 Feb 2019 12:25:27 GMT';

/* text date converted into SAS datetime */
out = input(in,ANYDTDTM20.);
format out datetime20.;

/* if format really matters */
outdate = put(datepart(out),ddmmyyd10.);
outtime = put(out,tod9.);
/* outformatted will have your desired format but will be a char variable, not a datetime */
outformatted = put(outdate,$10.)||" "||put(outtime,$8.);
run;
© www.soinside.com 2019 - 2024. All rights reserved.