INTCK関数の基準値について

[OS] ALL
[リリース] 9.2,9.3,9.4
[キーワード] year,time,month,年,時間,日付値

[質問]

INTCK関数で日付間隔を算出した場合に、開始日を基準値として設定することはできますか。

[回答]

SAS 9.2より追加された、オプション引数CONTINUOUSを用いることで開始日を基準値として設定することができます。

INTCK関数の構文:
INTCK('<間隔>', <開始日>, <終了日>, 'オプション引数')

オプション引数:
DISCRETE: 間隔の境界が基準値になります。(デフォルト値)
CONTINUOUS: 開始日が基準値となります。

例えば、下記のサンプルプログラムのように、15JAN2010と14JAN2011の日付間隔を求める場合に、DISCRETEは、月末が基準となるため結果は、'12'となります。
CONTINUOUSは、開始日が基準となるため結果は、'11'となります。

サンプルプログラム

DATA _NULL_;
    
    start_date = '15JAN2010'd;
    end_date   = '14JAN2011'd;
    
    up   = INTCK('MONTH', start_date, end_date, 'DISCRETE');
    down = INTCK('MONTH', start_date, end_date, 'CONTINUOUS');
    
    PUT 'DISCRETE   :' up;
    PUT 'CONTINUOUS :' down;
  RUN;