我正在使用SAS EG中的“数据步骤”导入CSV数据。在CSV中,我有一个日期列。日期为'2019年2月20日格林尼治标准时间'
代码:-
Data Test;
infile 'Test,csv';
informat Date_Column date26.;
format Date_Column datetime26.;
run;
运行该代码时,我的日期为 01JAN1960:05:59:23 。我尝试了不同的格式,但是有时我只会得到日期,有时会出现错误。
是否可以获取正确的日期为 20-02-2019 12:25:27 ?
答案 0 :(得分: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;