SAS日期交换年和日

时间:2015-09-02 13:12:36

标签: date sas

我正在使用包含日期变量的数据集,格式为MMDDYY10 .. 问题是,交换了日,月和年。

现在看来的数据集:

Obs Date
1   11/01/1931
2   11/06/1930
3   12/02/2003
4   12/07/2018

我想要的是格式为DDMMYY10。或类似的日期变量:

Obs Date
1   31/01/2011
2   30/06/2011
3   03/02/2012
4   18/07/2012

观察1因此写成1931年11月1日,但实际上是2011年1月31日。

有谁知道我怎么能改变这个?

1 个答案:

答案 0 :(得分:1)

看起来您使用错误的INFORMAT读取原始原始数据。您很可能拥有YYMMDD格式的数据,并将其读作MMDDYY。您可以使用PUT()和INPUT()函数尝试将其反转。

data have ;
  input date mmddyy10.;
  newdate = input(put(date,mmddyy6.),yymmdd6.);
  format date newdate yymmdd10. ;
  put (date newdate) (=);
cards;
11/01/1931
11/06/1930
12/02/2003
12/07/2018
;;;;

结果:

date=1931-11-01 newdate=2011-01-31
date=1930-11-06 newdate=2011-06-30
date=2003-12-02 newdate=2012-02-03
date=2018-12-07 newdate=2012-07-18