SAS转换50美元。字符串到YYYYMM

时间:2016-03-07 21:24:00

标签: sas

我有一个包含50美元字段的数据集。烧焦 示例值= 6/1/2015 0:00:00

我试图从该数据集中获取一个字段来存储该文本字符串中的YYYYMM值。

因此,对于这个例子,我需要201506

我知道这是可能的;但似乎无法让它与任何东西一起工作

目前有以下内容让我更接近。

 data a;
 set a.dataset;
 yearmon = input(date,anydtdtm20.);
 format yearmon datetime19;
 run;

这让我在01JUN2015:00:00:00 我试图将yearmon改为yearmon = input(put(date,anydtdtme20。),yymmd。); 并删除格式行。但这只是给我一个空白值

2 个答案:

答案 0 :(得分:0)

只需使用datepart()函数获取日期时间值的日期部分:

data want ;
  set have ;
  yearmon = input(date,anydtdtm20.) ;
  dt = datepart(yearmon) ;
  format yearmon datetime19. dt yymmn6. ;
run ;

答案 1 :(得分:0)

如果您正在使用input功能(而不是从文本文件中输入等),您可以要求它截断。

然后使用格式yymmn6.n表示没有分隔符):

data test;
  dtvar = '6/1/2015 0:00:00';
  x = input(dtvar,mmddyy10.);
  format x yymmn6.;
  put x=;
run;

如果您想要字符值而不是格式化数字,请添加put步骤。

data test;
  dtvar = '6/1/2015 0:00:00';
  x = put(input(dtvar,mmddyy10.),yymmn6.);
  put x=;
run;