DateRoll

EssbaseのMDX DateRoll関数は、日付に対して時間間隔を加算または減算します。

指定された日付に、この関数は、様々な特定の時間間隔をロール(加算または減算)し、別の日付を返します。この関数は、標準のグレゴリオ暦を想定します。

構文

DateRoll ( date, date_part, number )

パラメータ

date

日付を表す数値。数値は、1970年1月1日の午前0時以降に経過した秒数です。この数値を取得するには、Today()、TodateEx()、GetFirstDate()、GetLastDate()のいずれかの関数を使用します。

メンバーの日付/時刻属性プロパティを使用して、この数値を取得することもできます。次に例を示します。

  • Product.currentmember.[Intro Date]は、コンテキスト内の現在の製品の製品投入日を返します。

  • [Cola].[Intro Date]は、コンテキスト内のColaの製品投入日を返します。

date_part

標準カレンダに従って定義された時間コンポーネント:

  • DP_YEAR: 入力日付の年。

  • DP_QUARTER: 入力日付の四半期。

  • DP_MONTH: 入力日付の月。

  • DP_WEEK: 入力日付の週。

  • DP_DAY: 入力日付の日。

number

加算または減算する時間間隔の数。

ノート

入力date_partとdateroll numberに基づき、日付は時系列上で前後に移動します。

例: 入力日付が2024年5月28日で、入力daterollの数が5の場合、次のようになります。

  • DP_YEARは、入力日付に5年を加算します(2029年5月28日)。

  • DP_QUARTERは、入力日付に5四半期(15か月)を加算します(2025年8月28日)。

  • DP_MONTHは、入力日付に5か月を加算します(2024年10月28日)。

    月末付近の入力dateを使用し、負のnumberを使用する場合、結果は予想とは異なる可能性があります。date = 2025年5月31日、number = -1の例では、4月には30日しかないため、結果の日付は2024年5月1日になります。

  • DP_WEEKは入力日付に5週間を加算します(2024年7月2日)。

  • DP_DAYは入力日付に5日間を加算します(2024年6月2日)。

次の問合せは、California市場の製品Colaについて、2024年4月(包含)から6か月間ロールバックした実際の週次売上を返します。

SELECT 
 {[Sales]} 
ON COLUMNS,
 {DateToMember
  (
   DateRoll(
     GetFirstDate ([Apr 2024]),
         DP_MONTH,
         6
   ),
   [Time dimension].Dimension, 
   [Time dimension].[WEEKS]
   ): ClosingPeriod([Time dimension].[Weeks], [Apr 2024]))
  } ON ROWS
FROM MySamp.Basic
Where (Actual, California, Cola);