Как вы можете определить, какие даты должны быть 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;