date - 如何使用 PROC SQL 将 200012 之类的数字列转换为 SAS 日期变量?

标签 date sas proc-sql

我有一个 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 展开

我已经看到很多使用 putdatepart 组合的问题,但是因为我不希望变量作为字符串而且还没有日期时间变量,我不确定如何应用它们。

运行此 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/

相关文章:

sql - 使用变量更改 FROM 语句

r - SVD 分解中 SAS/IML 和 R 的不同结果

email - 在 SAS SQL 中计算电子邮件地址中的连续辅音

sas - 如何将日期列放入宏变量SAS

sql - SAS 数据步骤/SQL 从多个具有相同 ID 的记录中选择最新记录

java - 解析具有迄今为止整数值的字符串

javascript - 使用javascript按日期加载css

SQL - 如何将查询结果的计数添加到表中

sql - 如何在 PostgreSql 中从秒获取年、月、日?

PHP:为什么 strtotime() 返回 "NOW()"?