Изменить формат даты SAS - PullRequest
0 голосов
/ 24 марта 2019

У меня есть переменная даты в ddmmyy8 .формат, такой как 24/12/12, я хочу изменить его на ddmmyy10 .однако формат автоматически меняется на 24/12/2012, что неверно, дата должна быть 24/12/1912.

Есть ли способ сообщить SAS, что это 1912, а не 2012?или мне надо минус 100 лет вручную?

1 Ответ

1 голос
/ 24 марта 2019

Как вы можете определить, какие даты должны быть 2012, а какие должны быть 1912?

Если ваша переменная действительно является переменной даты SAS, то век уже был 2000, вы просто не могли увидеть его раньше, потому что вашиспользовали формат отображения, который не показывает век.Вы можете использовать intnx() для настройки значения.

want = intnx('year',have,-100,'same');

Если вы конвертируете строки в даты, вы можете использовать опцию YEARCUTOFF, чтобы вместо этого интерпретировать 12 как 19122012.

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;
...