将YYYYMMDD8转换为DATE9格式?

时间:2020-01-30 18:03:55

标签: date sas type-conversion

我需要将YYYYMMDD格式的字符串转换为SAS中的数字DATE9格式。

我可以将字符串转换为YYYYMMDD8,但是正在努力将其转换为DATE9格式。我认为可能只是为变量放入格式语句并将其设置为DATE9,因为它已经是数字日期格式了,但是这样做只会产生星号。

我试图重现一些示例代码。提供了数据集date1。我已经将其转换为YYYYMMDD8。按照步骤2。这是步骤3,我无法上班。我已经尝试过通过类似问题的答案提供的可接受的解决方案,但无法使其正常工作。所以我可能做错了事。

因此,简而言之,我需要第3步的工作版本或简化的第2步,只需一步即可将字符串转换为date9。

* STEP 1 - Provided;
data date1;
    FORMAT file_date $8.;
    file_date = '20191209';
run;

* Step 2 - Convert to YYYYMMDD8.;
PROC SQL;
    CREATE TABLE date2 AS
    SELECT INPUT(file_date,yyyymmdd8.) AS file_date2 FORMAT YYYYMMDD8.
    FROM date1;

* Step 3 - Convert to DATE9. (Results in asterisks in place of the actual date);
DATA date3;
    SET date2;
    FORMAT file_date3 date9.;
    file_date3 = file_date2;
RUN;

1 个答案:

答案 0 :(得分:1)

这里的问题是格式yyyymmdd不存在,只是yymmdd。为了简化使用SAS日期的操作,应使用信息anydtdte。因此,步骤2可以简化为以下内容:

proc sql;
create table date2 as
select input(file_date,anydtdte8.) as file_date2 format=date9.
from date1;
quit;
相关问题