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

标签 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。以毫秒为单位?

最佳答案

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

关于sas - 计算 2 个 SAS 日期时间值之间的毫秒差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34927910/

相关文章:

python - 使用 pandas 根据 groupby 将行中的多个变量转置为列

oracle - 如何高效地从 SAS 更新 Oracle 表?

sas - 跨项目标准化数据集属性

SAS:PROC FREQ 自动组合?

java - 什么是更快的 flex 和 Java 或 flex 和 php?

r - 嵌套 ifelse 语句

sas - 数据集的排序顺序

sas - 无法检测到ID

sas - 您能否写入 sas 日志以指示当前脚本的位置,例如行号?

sas - 如何限制 SAS 中的月份数