在SAS中将字符日期转换为数字

时间:2019-02-07 01:53:58

标签: sas

我有一个字符变量,其中包含日期(字符串长度为30):

Mon Jul 24 02:48:17 -0700 2017
------------------------------ ruler
123456789012345678901234567890
         1         2         3

如何提取可用的(日期,月份,年份)日期并将其保存为数字日期。我知道如何使用SUBSTR函数,然后将所有内容串联在一起。但我想知道一种更简便快捷的方法。我尝试使用ANYDTDTE信息读取它,但是得到空白值。让我知道是否有更简单的方法来读取此日期。

1 个答案:

答案 0 :(得分:0)

您只需要日期吗?还是您还需要获取时间部分? SCAN()函数可以使此操作更容易。

data test;
  str='Mon Jul 24 02:48:17 -0700 2017';
  date=input(cats(scan(str,3),scan(str,2),scan(str,-1)),date9.);
  format date date9.;
  datetime=input(cats(scan(str,3),scan(str,2),scan(str,-1),':',scan(str,4,' ')),datetime20.);
  format datetime datetime19.;
run;

结果:

str=Mon Jul 24 02:48:17 -0700 2017 
date=24JUL2017 
datetime=24JUL2017:02:48:17