2016-01-11 2 views
0

Параметры start_date, end_date & output_vars. Даты: чартерная строка. Как преобразовать его в макрос?sas macro для подсчета разницы между двумя строками даты и хранения номера в новой переменной

data _null_; 
    start =; 
    end = ; 
    diff=end date-startdate; 
    days = intck('day',start,end); 
    weeks = intck('week',start,end); 
    months = intck('month',start,end); 
    year = intck('year',start,end); 
    put days= weeks= months= year=; 
run; 

ответ

0

Прежде всего, если у вас есть параметры макроса, то это будут макропеременные, а не переменные шага данных. Таким образом, вам нужно указать значение параметра как & START_DATE и т. Д. Во-вторых вы можете использовать функцию макроса %SYSFUNC() для вызова функции INTCK() в макрокоде. В-третьих, вам нужно знать формат даты, который будет использоваться параметрами. Это проще всего, если вы просто попросите использовать формат DATE, тогда вы можете использовать значения параметров как литералы даты.

%let start_date=01JAN2015 ; 
%let end_date=01JAN2016 ; 
%let days = %sysfunc(intck(day,"&start_date"d,"&end_date"d));