计算 2 个 SAS 日期时间值之间的差异(以毫秒为单位)



>我有日期时间22.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. 之间的差异?

如果你想要差值,你可以减去数字,这给了你以秒为单位的差异。然后乘以 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;

最新更新