SYSFUNC имеет опцию форматирования. Подумайте, полезно ли это вам.
%let time1 = %sysfunc(datetime());
data _null_;
timedelay = sleep(5, 1);
run;
%let time2 = %sysfunc(datetime());
%let diff = %sysfunc(sum(&time2,-&time1),time13.);
%put NOTE: &=diff;
Или, если вы хотите использовать функцию PUTN.
%put TimeDifference: %sysfunc(putN(%sysevalf(&time2-&time1),time,13));
Если правильно (я не могу легко проверяй), это увлекательно. Порядок не должен иметь значения, AFAIK. Если вы уверены в этом, то, возможно, зарегистрируйте ошибку в Connect (с примером кода).
Нет, порядок ваших Конструкторов, перечисленных в коде (с использованием C # или VB.NET), не имеет значения.
Однако в данном конкретном случае (я не проверял это) вы, возможно, нашли ошибку. Прежде чем перейти к выводу «это ломается на моей машине», вы можете попросить кого-нибудь еще проверить проблему на своей машине, чтобы вы знали, что это не только ваша машина. У меня было это раньше.
Подтверждено как ошибка. Слишком сложно исправить, чтобы оно того стоило, так что я думаю, мы просто будем жить с этим. К счастью, для этого, похоже, требуются кросс-языковые проекты с необычными настройками классов.