我需要計算一個等於兩個日期之間的「最近」月數的數字。然而,標準SAS函數(INTCK)不適合考慮其日期參數的DAY(例如,當我需要將其舍入爲1時,下面的代碼解析爲0)。SAS日期問題 - 計算「最近幾個月」
解決此問題的「最好」方法是什麼?
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,Earlier_Date)
返回類型 整數
實例
NEAREST_MONTHS(DATE1,DATE2) 返回8如果日期1是20/3/1997和date2是23/7/1996
NEAREST_MONTHS(date1,date2) 如果date1是20/3/1997且date2是1/2/1995,則返回26
這是棘手的,因爲你真的不定義四捨五入規則。例如,您是否希望將30APR09和01MAY09之間的間隔舍入到兩個不同月份之間的邊界之後的1個月內,還是將它舍入到0個月,因爲它只是一個1天的間隔? – 2009-06-26 14:28:56