我有一个 SAS 数据集,其中包含文本字段 customer_id
和数字字段 month
,格式为 YYYYMM
。我正在创建这些数据的 View ,我想将数据转换为标准的 SAS 日期(希望)在导出时保留。例如:
proc sql;
create view my_view as
select customer_id, month from raw_dataset;
quit;
proc export data = my_view
file = "out.dta"
dbms = stata replace;
quit;
查看 date documentation ,看起来数字的形式是(虽然不是数据类型)YYMMN.
,但我希望它采用 SAS 可以作为日期使用的格式,而不仅仅是数字,例如使用 proc 展开
。
我已经看到很多使用 put
和 datepart
组合的问题,但是因为我不希望变量作为字符串而且还没有日期时间变量,我不确定如何应用它们。
运行此 SQL 查询时如何将此列转换为 SAS 日期数据类型?
最佳答案
YYMMN.
是要使用的正确信息格式,而 input
正是您获取信息的方式,因此它是一个日期。试试吧!
data want;
x='201403';
y=input(x,YYMMN6.);
put _all_;
run;
当然,y
如果您想查看它,现在可能应该格式化得很好,但它不需要。
在 PROC SQL
中,其工作方式相同。
proc sql;
create view want_v as
select x, y, input(x,yymmn6.) as z format=date9.
from want;
quit;
这也添加了一种格式,因此它看起来可读,但它仍然是一个与 y
相同的日期变量。
关于date - 如何使用 PROC SQL 将 200012 之类的数字列转换为 SAS 日期变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29977801/