HDIFF - 2 つの日付時間値の差を計算
HDIFF 関数は、指定した構成要素単位 (日付または時間) で 2 つの日付時間値の差を計算します。
HDIFF 使用上の注意
HDIFF 関数の減算は、日付フィールドに格納されている日付構成要素を減算する DATEDIF 関数と異なります。DATEDIF 関数では、年単位の差 (満年数) または月単位の差 (満月数) が計算されます。そのため、次の 2 つの日付を減算し、月数または年数を求めると、結果は 0 (ゼロ) になります。
DATE1 12/25/2014, DATE2 1/5/2015
HDIFF 関数を使用して同一の計算を日付時間フィールドに対して実行すると、結果は 1 か月または 1 年になります。この場合、最初に月または年が各日付時間値から抽出され、次に減算が実行されます。
2 つの日付時間値の差を計算
HDIFF(end_dt, start_dt, 'component', output)
日付時間
減算元の日付時間値です。値を含む日付時間フィールド名、または値を返す式を指定することもできます。
日付時間
減算する日付時間値です。値を含む日付時間フィールド名、または値を返す式を指定することもできます。
文字
計算に使用する構成要素名です。構成要素名は一重引用符 (') で囲みます。構成要素が週の場合、計算に WEEKFIRST パラメータ設定を使用します。
倍精度浮動小数点数
結果を格納するフィールド名、または出力フォーマットです。フォーマットは一重引用符 (') で囲みます。フォーマットは、倍精度浮動小数点数である必要があります。
2 つの日付時間フィールドの日数差を計算
HDIFF 関数は、TRANSDATE と ADD_MONTH フィールドの日数の差を計算し、結果を D12.2 フォーマットで DIFF_PAYS に格納します。
TABLE FILE VIDEOTR2 PRINT CUSTID TRANSDATE AS 'DATE-TIME' AND COMPUTE ADD_MONTH/HYYMDS = HADD(TRANSDATE, 'MONTH', 2, 8, 'HYYMDS'); DIFF_DAYS/D12.2 = HDIFF(ADD_MONTH, TRANSDATE, 'DAY', 'D12.2'); WHERE DATE EQ 2000; END
出力結果は次のとおりです。
CUSTID DATE-TIME ADD_MONTH DIFF_DAYS ------ --------- --------- --------- 1237 2000/02/05 03:30 2000/04/05 03:30:00 60.00 1118 2000/06/26 05:45 2000/08/26 05:45:00 61.00