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

如何在SAS中导入CSV数据时设置正确的日期格式?,sas,Sas,我使用SAS中的数据步骤导入CSV数据,例如,在CSV中,我有一个日期列。日期为“2019年2月20日12:25:27 GMT” 代码:- Data Test; infile 'Test,csv'; informat Date_Column date26.; format Date_Column datetime26.; run; 运行此代码时,我得到的日期为01JAN1960:05:59:23。我尝试过不同的格式,但有时我只得到日期,有时错误 有没有办法把正确的日期定为20-02-2019

我使用SAS中的数据步骤导入CSV数据,例如,在CSV中,我有一个日期列。日期为“2019年2月20日12:25:27 GMT”

代码:-

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的“GMT”。理想情况下,如果您需要处理来自不同时区的日期时间,我建议您根据ISO8601结构在CSV中获取日期时间

如果GMT不重要,您可以使用“anyDTM20.”来阅读该列

您描述的格式本身并不存在。SAS有许多接近的格式,您可以找到它们。让我们以“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;

答案也有一个类似的问题:尝试过了,但没有给出时间和日期