前のページ|次のページ

INTGET関数

3つの日付値または日時値に基づく時間間隔を返します。

カテゴリ: 日付と時間

構文

INTGET(date-1, date-2, date-3)

必須引数

date

SAS日付値または日時値を指定します。

詳細

INTGET関数の間隔

INTGET関数は、3つの日付値または日時値に基づく時間間隔を返します。この関数は最初の2つの日付間で可能なすべての間隔を最初に確認し、次に2番目と3番目の日付間で可能なすべての間隔を確認します。すべての間隔が同じ場合、INTGETはその間隔を返します。1番目と2番目の日付間に異なる間隔があり、2番目と3番目の日付間に異なる間隔がある場合、INTGETはそれらの間隔を比較します。他の間隔の倍数となる間隔がある場合、INTGETはその小さい方の間隔を返します。それ以外の場合、INTGETは欠損値を返します。INTGETは、配置の値がBEGINのINTNX関数によって生成された日付に適しています。
次の例では、INTGETは間隔DAY2を返します。
interval=intget('01mar00'd, '03mar00'd, '09mar00'd);
2000年3月1日から2000年3月3日までの日数は2であるため、1番目と2番目の日付間の間隔はDAY2です。2000年3月3日から2000年3月9日までの日数は6であるため、2番目と3番目の日付間の間隔はDAY6です。DAY6はDAY2の倍数です。INTGETはこの2つの間隔のうち小さい方を返します。
次の例では、INTGETは間隔MONTH4を返します。
interval=intget('01jan00'd, '01may00'd, '01may01'd);
2000年1月1日から2000年3月1日までの月数は4であるため、最初の2つの日付間の間隔はMONTH4です。2番目と3番目の日付間の間隔はYEARです。YEARはMONTH4の倍数(YEARには3つのMONTH4間隔が含まれる)であるため、INTGETは2つの間隔のうち小さい方の間隔を返します。
次の例では、INTGETは欠損値を返します。
interval=intget('01Jan2006'd, '01Apr2006'd, '01Dec2006'd);
最初の2つの日付間の間隔はMONTH3です。2番目と3番目の日付間の間隔はMONTH8です。MONTH8はMONTH3の倍数ではないため、INTGETは欠損値を返します。
返される間隔は有効なSAS間隔で、間隔とシフト間隔の倍数が含まれます。有効なSAS間隔のリストについては、Intervals Used with Date and Time Functions (SAS言語リファレンス: 解説編) を参照してください。
注: INTGETが一致する間隔を確認できない場合、関数は欠損値を返します。SASログにメッセージは書き込まれません。

販売カレンダの間隔

INTGET関数は、小売業界によるカレンダの間隔でも使用できます。これらの間隔はISO 8601に準拠します。詳細については、Retail Calendar Intervals: ISO 8601 Compliant (SAS言語リファレンス: 解説編)を参照してください。

SASステートメントとその結果を次に示します。
SASステートメント
結果
interval=intget('01jan00'd, '01jan01'd, '01may01'd);
put interval;
MONTH4
interval=intget('29feb80'd, '28feb82'd, '29feb84'd);
put interval;
YEAR2.2
interval=intget('01feb80'd, '16feb80'd, '01mar80'd);
put interval;
SEMIMONTH
interval=intget('2jan09'd, '2feb10'd, '2mar11'd);
put interval;
MONTH13.4
interval=intget('10feb80'd, '19feb80'd, '28feb80'd);
put interval;
DAY9.2
interval=intget('01apr2006:00:01:02'dt,
'01apr2006:00:02:02'dt,
'01apr2006:00:03:02'dt);
put interval;
MINUTE

関連項目:

前のページ|次のページ|ページの先頭へ