YM - 経過月数を計算
YM 関数は、2 つの日付間の月数を計算します。日付は年月フォーマットである必要があります。CHGDAT または EDIT 関数を使用することにより、日付をこのフォーマットに変換することができます。
経過月数を計算
YM(fromdate, todate, output)
説明
fromdate
I4YM または I6YYM
年月日の開始日付です (例、I4YM)。日付が有効でない場合、この関数は 0 (ゼロ) を返します。
todate
I4YM または I6YYM
整数年月フォーマットのレガシー日付です。日付が有効でない場合、この関数は 0 (ゼロ) を返します。
output
整数
結果を格納するフィールド名、または出力フォーマットです。フォーマットは一重引用符 (') で囲みます。
ヒント:fromdate または todate が整数の年月日フォーマット (I6YMD または I8YYMD) の場合、年月フォーマットを変換し、結果を整数に設定するには、100 で除算します。これにより日付の日の部分が削除されます。日は、小数部分で表されます。
経過月数を計算
COMPUTE コマンドは、年月日の日付を年月フォーマットに変換します。その後、YM は HIRE_DATE/100 と DAT_INC/100 フィールドの値の差を計算します。
TABLE FILE EMPLOYEE PRINT DAT_INC AS 'RAISE DATE' AND COMPUTE HIRE_MONTH/I4YM = HIRE_DATE/100; NOPRINT AND COMPUTE MONTH_INC/I4YM = DAT_INC/100; NOPRINT AND COMPUTE MONTHS_HIRED/I3 = YM(HIRE_MONTH, MONTH_INC, 'I3'); BY LAST_NAME BY FIRST_NAME BY HIRE_DATE IF MONTHS_HIRED NE 0 WHERE DEPARTMENT EQ 'MIS'; END
出力結果は次のとおりです。
LAST_NAME FIRST_NAME HIRE_DATE RAISE DATE MONTHS_HIRED --------- ---------- --------- ---------- ------------ CROSS BARBARA 81/11/02 82/04/09 5 GREENSPAN MARY 82/04/01 82/06/11 2 JONES DIANE 82/05/01 82/06/01 1 MCCOY JOHN 81/07/01 82/01/01 6 SMITH MARY 81/07/01 82/01/01 6