有關(guān)ADSTDTC/AEENDTC日期填補(bǔ)引發(fā)的幾點(diǎn)思考

1.首先,在SAS中,沒有合適的format可以對(duì)“2020-06”字符型日期直接轉(zhuǎn)為數(shù)值型。無(wú)論是用yymmdd6.有關(guān)的格式還是yymmn6.格式。

關(guān)于yymmn6.格式:是一種將“202006”這種字符型日期轉(zhuǎn)為數(shù)值型的format;但轉(zhuǎn)換之后的數(shù)值型日期指的是當(dāng)月的第一天即20200601號(hào)的數(shù)值型日期時(shí)間,下面程序運(yùn)行之后結(jié)果相等。

yymmn6.格式的使用與anydtdte.格式使用差不多,將需要填補(bǔ)的日期轉(zhuǎn)換為任何日期格式,只可以用來(lái)轉(zhuǎn)為數(shù)值型(且轉(zhuǎn)為的數(shù)值型為當(dāng)月的第一天),且對(duì)2010-10-01這種的完整日期格式無(wú)效,從數(shù)值型轉(zhuǎn)為字符型用anydtdtc.這個(gè)格式會(huì)報(bào)錯(cuò),


2.日期變量的比較字符型可以和字符型比較,數(shù)值型可以和數(shù)值型比較,且不報(bào)錯(cuò),因此進(jìn)行日期變量之間的比較時(shí)候不必轉(zhuǎn)為數(shù)值型,無(wú)論字符型日期完整不完整都可以進(jìn)行比較。

。

3.關(guān)于日期填補(bǔ),示例請(qǐng)看如下:


sap


paragram變成分別對(duì)應(yīng)上面規(guī)則1234

intck函數(shù)與intnx很類似,第一個(gè)用于計(jì)算兩個(gè)變量之間的間隔,第二個(gè)用于計(jì)算在第一個(gè)變量固定間隔多少個(gè)之后的值是多少。

以此為例:intnx('month', input(aa, anydtdte.), 0, 'e'),intnx函數(shù)的參數(shù)解釋如下:

'month':表示在月的基礎(chǔ)上按間隔遞增。

input(aa, anydtdte.):將需要填補(bǔ)的日期轉(zhuǎn)換為任何日期格式。

0:表示在本月的基礎(chǔ)上遞增(如果想在下月就寫1,以此類推)。

'e':表示遞增到月末(如果是月初就是'b',月中就是'm')。

我在網(wǎng)上也找到了其他填補(bǔ)的方法:

首先用year()/month()/day()函數(shù)取出首次治療日期的單個(gè)部分來(lái),然后從開始日期或結(jié)束日期中用scan函數(shù)用T和-作為分隔符提取年、月、日。然后對(duì)于組合的日期采用mdy()函數(shù),此函數(shù)共三個(gè)參數(shù),分別是月、日、年,用逗號(hào)分割三個(gè)參數(shù)

示例:sy年sm月1日

4.需要計(jì)算AE的持續(xù)時(shí)間,想要的結(jié)果是xx天xx時(shí)xx分的形式。天好做,用結(jié)束日期-開始日期+1.但是計(jì)算小時(shí)分鐘,因?yàn)橹苯佑胕ntck函數(shù)計(jì)算的是間隔的小時(shí)數(shù)或分鐘數(shù)而不是,真正零碎的不到一天或不到一小時(shí)的時(shí)間,因此需要除以相應(yīng)的分母,比如24小時(shí)、60分鐘,? ?并根據(jù)結(jié)果是正是負(fù)增加相應(yīng)的24或60,取余數(shù)計(jì)算。如下所示.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容