是否可以在不使用输入语句的情况下将字符日期转换为另一种字符日期格式...可能吗?

时间:2014-12-10 13:58:12

标签: sas

是否有更快/更短的方式将字符日期转换为另一种字符日期格式而不使用中间输入语句,如下所示......

data alpha;
length date $12;
input date $;
cards;
15FEB2014
;
run;

data beta;set alpha;
date_f=put(input(date,date9.),yymmdd10.);
run;

字符日期:15FEB2014 - >人物日期:2014-02-15

由于

sas_kappel

1 个答案:

答案 0 :(得分:1)

当然有可能,但这可能不容易。

data alpha;
  length date $12;
  input date $;
cards;
15FEB2014
;
run;

data beta;set alpha;
  date_f=put(input(date,date9.),yymmdd10.);
  format date_f2 $10.;
  array monnames[12] $ _temporary_ ("JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC") ;
  date_f2 = catx('-',substr(date,6,4),put(whichc(substr(date,3,3),of monnames[*]),z2.),substr(date,1,2));
run;

我想不出比没有作弊更简单的方式,而不是我已经在那里。 put(input())方法在少量代码背后做了很多工作。

您还可以编写将'01JAN2014'转换为'2014-01-01'的直接字符格式,但除非我遗漏了明显的内容,否则您必须逐个编写每个可能的转换。