我在 ddmmyy8 中有一个日期变量。格式,例如12/12/24,我想将其更改为 ddmmyy10 。格式,但是它会自动更改为2012年12月24日,这是不正确的,日期应为1912年12月24日。
有没有办法告诉SAS是1912,而不是2012?还是我必须手动减去100年?
答案 0 :(得分:1)
您怎么知道哪个日期应该是2012年,哪个日期应该是1912年?
如果您的变量确实是SAS日期变量,那么世纪已经是2000年,您以前就无法看到它,因为您使用的显示格式无法显示世纪。您可以使用intnx()
来调整值。
want = intnx('year',have,-100,'same');
如果要将字符串转换为日期,则可以使用YEARCUTOFF
选项使它将12
解释为1912
而不是2012
。
857 %let optsave=%sysfunc(getoption(yearcutoff));
858 %put &=optsave;
OPTSAVE=1926
859 %put %sysfunc(inputn(24/12/12,ddmmyy8),date9);
24DEC2012
860 options yearcutoff=1912;
861 %put %sysfunc(inputn(24/12/12,ddmmyy8),date9);
24DEC1912
862 options yearcutoff=&optsave;