sas宏计算两个日期字符串之间的差异并将数字存储在新变量中

sas macro to count difference between two date strings & store the number in new variable

参数 start_dateend_dateoutput_vars。日期是 包机字符串 。如何在宏中转换它?

    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;

首先,如果您有宏参数,那么它们将是宏变量而不是数据步骤变量。所以你需要将参数值引用为&START_DATE,等等。 其次,您可以使用 %SYSFUNC() 宏函数调用宏代码中的 INTCK() 函数。 第三,您需要知道参数将使用的日期格式。如果您只要求他们使用 DATE 格式,那么最简单,然后您可以将参数值用作日期文字。

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