计算2个SAS日期时间值之间的毫秒差异

时间:2016-01-21 15:36:28

标签: sas

我有datettime22.3格式的开始时间和结束时间......

%let datetime_start = %sysfunc(datetime(),datetime22.3) ;
%put &datetime_start.;

%let datetime_end = %sysfunc(datetime(),datetime22.3) ;
%put &datetime_end.;

如何区分& datetime_end。和& datetime_start。以毫秒为单位?

1 个答案:

答案 0 :(得分:2)

如果你想要差异,你可以减去数字,这会给你几秒钟的差异。然后乘以1000得到毫秒。您还需要使用%sysevalf进行计算。在这个例子中,我将datetime()保持为一个数字,这就是SAS测量时间的方式,即从1960年1月1日开始的秒数。如果数据是如上所述的日期时间格式,那么你就可以了。必须将其转换为数字。

%let start = %sysfunc(datetime()) ;
%put &start.;

ods html;
proc means data=sashelp.class;
run;
ods html close;

%let end = %sysfunc(datetime()) ;
%put &end.;

%let duration = %sysevalf((&end - &start)*1000);
%put &duration;