Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

NOW メンバ

このセクションでは、日付/時間レベルの NOW メンバについて説明します。この構文は、インターシステムズによる MDX への拡張機能です。

Basic 構文

date_time_level.[NOW]

以下は、この指定の説明です。

  • date_time_level は、日付/時間ディメンジョンのレベルを参照するレベル式です。

この構文は、現在の日時に対応する指定されたレベルのメンバを返します。以下のテーブルに例を示します (2012 年 5 月 24 日作成)。

返されるメンバ
birthd.decade.NOW birthd.decade.2010s
birthd.[quarter year].NOW birthd.[quarter year].[Q2 2012]
birthqd.[quarter].NOW birthd.[quarter year].Q2
birthtd.NOW birthtd.4pm

NOW は大文字と小文字が区別されません。また、角括弧で囲まれている場合は、このトピックで後述するバリエーションを使用する場合を除いて、省略可能です。

Now を基準にする日付

以下の形式の式も使用できます。

date_time_level.[NOW-integer]

または、以下のようにします。

date_time_level.[NOW+integer]

以下のテーブルに例を示します (2012 年 5 月 24 日作成)。

返されるメンバ
birthd.decade.[NOW-4] birthd.decade.1970s
birthd.[quarter year].[NOW-4] birthd.[quarter year].[Q2 2011]
birthqd.quarter.[NOW-4] birthqd.quarter.Q2

カレンダー全体と無関係な時間レベルを使用する式を使用する場合は注意してください。その場合、[NOW-integer] は、サイクル内の過去のバケットを参照します。テーブルの 3 番目の例を見てください。birthqd.quarter レベルは、レコードを、年に関係なく、四半期でグループ化します。このレベルでは、NOW は現在の四半期番号のみを参照します。このレベルにはサイクルあたり 4 つのメンバが存在するので、このレベルでは [NOW-4] と [NOW] は同等です。

同じロジックは、[NOW+integer] という形式の式にも適用されます。

範囲式で使用する場合の制約

以下のいずれかの時間関数に基づくレベルの範囲式では、NOW を使用できません。

時間関数 一般的なメンバ メモ
QuarterNumber Q4 これらのレベルは、年に依存しません。
MonthNumber November
DayNumber 24 このレベルは、年および年の部分に依存しません。
HourNumber 1am これらのレベルは、日に依存しません。
MinuteNumber 01:24

日付レベルの他のオプション

DayMonthYear 時間関数に基づくレベルでは、以下のような年数、月数、および日数の組み合わせを使用した追加の式がサポートされています。

daymonthyear_level.[NOW-offset_expression]

または、以下のようにします。

daymonthyear_level.[NOW+offset_expression]

単純な場合、offset_expression は、nnynnmnnd となります。それぞれ以下のとおりです。

  • nn は、1 桁または 2 桁の整数です。

  • nny は、年数を指定する省略可能なユニットです。

  • nnm は、月数を指定する省略可能なユニットです。

  • nnd は、日数を指定する省略可能なユニットです。

以下のテーブルに例を示します (2012 年 5 月 24 日作成)。

返されるメンバ
birthd.date.[NOW-4y3m2d] birthd.date.[Feb 22 2008]
birthd.date.[NOW-1m] birthd.date.[Apr 24 2012]

既定では、各ユニットは加算されます。例えば、4y3m2d は、4 年と 3 か月と 2 日を合計した期間を意味します。

ユニット間にマイナス記号を使用して減算させることもできます。1y-1d は 1 年から 1 日を減算した期間を意味します。以下はその例です。

返されるメンバ
dateofsale.actual.daysold.[NOW-1y-1d] dateofsale.actual.daysold.[May 25 2011]

うるう年は自動的に考慮されます。月ごとの日数の違いも、内部ロジックで考慮されます。


FeedbackOpens in a new tab