我需要计算一个等于两个日期之间“最近”月数的数字。但是,标准 SAS 函数 ( INTCK
) 不适合考虑其日期参数的 DAY(例如,当我需要将其舍入为 1 时,下面的代码解析为 0)。
解决此问题的“最简洁”方法是什么?
data _null_;
x="01APR08"d;
y="28APR08"d;
z=intck('MONTH',x,y);
put z= ;
run;
编辑:对马丁斯评论的回应。
我会四舍五入到 0 个月 - 我不认为边界是相关的。我试图复制的功能 ( NEAREST_MONTHS
) 来自 DCS(Sungard 先知应用程序)。我现在正在等待有机会在应用程序本身中执行一些测试,以了解更多关于它如何处理日期的信息(将在此处发布结果)。
帮助文件包含以下内容: 类别 日期
描述
将两个日期之间的差返回到最接近的月数。如果第二个日期晚于第一个日期,则返回 0。
句法
NEAREST_MONTHS(Later_Date, Early_Date)
返回类型整数
例子
NEAREST_MONTHS(date1, date2) 如果 date1 是 20/3/1997 并且 date2 是 23/7/1996,则返回 8
NEAREST_MONTHS(date1, date2) 如果 date1 是 20/3/1997 并且 date2 是 1/2/1995,则返回 26