我需要将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;
答案 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;