日時関数

このリファレンスガイドの目的: 日付は、年、月、日(四半期、週)とそれらの組み合わせのみを指します。時間は、時間、分、秒とそれらの組み合わせを指します。日付と時刻の組み合わせには、厳密に日時の条件を使用します。

変換スクリプトから継承された日付と時刻関数を参照してください。

日付文字列

日付文字列パラメーターは、絶対的(dd.MM.yyyy、yyyy-MM-dd またはドメイン設定に応じて)または相対的(時間変数)演算子によって入力されます:

date +|- n[d|w|m|q|y]

where

  • date は、dd.MM.yyyy または yyyy-MM-dd 形式、または actualyear, actualmonth, actualquarter, actualweek, actualday, now のいずれかです。

  • n は数を表します:

  • d 日、w 週、m 月、q 四半期、y 

:

'2011-01-01 + 1q - 2m + 1d' 
2011年1月1日 + 1四半期 - 2か月 + 1日を意味し、2011年2月2日を表します。
'actualYear + 1m + 1d' (確認日が2011年3月8日だった場合) 
2011年1月1日 + 1か月 + 1日を意味し、2011年2月2日を表します。

日付文字列を作成する別の方法は次の通りです:

date(day: dd, month: MM, year: YYYY)
date(d: dd, m: MM, y: YYYY)
date(week: w, year: YYYY)
date(quarter: q, year: YYYY)

日時コンテキストの変更

日時コンテキストとは何か? 以下の例を検討して下さい。

 

01/2011

02/2011

03/2011

数式インジケータ

1000

1200

1300

数式は列ごとに評価されます - この例では、列は特定の月について評価された値です。値1000の評価中、日時コンテキストは2011年1月であり、値1200の処理中、コンテキストは2011年2月でした。

関数

説明

Object dateAt(String dateString, { expression })

評価された式のコンテキストをdateString日付に変更します。:

dateAt('2011-01-01', {
i1 = M_NAME_1
i2 = M_NAME_2
if (i1 > i2) {
  return i1;
}
return i2;
});

Object dateInterval(String from, String to, { expression })

式の日付コンテキストを変更し、指定された間隔from - toで集計された式を評価します。例:

dateInterval('2011-01-01', '2011-12-31' {
i1 = M_NAME_1
i2 = M_NAME_2
if (i1 > i2) {
  return i1;
}
return i2;
});

インジケータM_NAME_1M_NAME_2の値は、全期間にわたって集計されます。

Object timeAt(String timeString, { expression })

評価された式のコンテキストをtimeString日付に変更します。例:

timeAt('13:33:23', {
i1 = M_NAME_1
i2 = M_NAME_2
if (i1 > i2) {
  return i1;
}
return i2;
});

Object timeInterval(String from, String to, { expression })

式の時間コンテキストを変更し、指定された間隔from - toで集計された式を評価します。:

timeInterval('00:00:01', '23:59:59' {
i1 = M_NAME_1
i2 = M_NAME_2
if (i1 > i2) {
  return i1;
}
return i2;
});

インジケータ M_NAME_1M_NAME_2の値は、全期間にわたって集計されます。

Object dateAt (String date, String period) { expression })

評価された式のコンテキストを、dateString日付に変更します - 定義された期間{DAY、D、WEEK、W、MONTH、M、YEAR、Y}で集計されます。

Object dateInterval (String from, String to, String period ) { expression })

式の日付コンテキストを変更し、指定された間隔from - toで集約された式を評価します。定義された期間{DAY、D、WEEK、W、MONTH、M、YEAR、Y}による集計も実行されます。

Object minus(String date, period, int)

指定されたperiod(年、月、週、日)の量を定義された日付値に引きます。

minus(date(firstValue('L_DATE')), 'days', 20) //subtracts 20 days from the date value
Object minus(String time, period, int)

指定されたperiod(時間、分、秒)の量を定義された日付値に引きます。

minus(time(firstValue('L_TIME')), 'minutes', 30) //subtracts 30 minutes from the time value
Object plus(String date, period, int)

指定されたperiod(年、月、週、日)の量を定義された日付値に追加します。

plus(date(firstValue('L_DATE')), 'days', 20) //adds 20 days to the date value
Object plus(String time, period, int)

指定されたperiod(時間、分、秒)の量を定義された日付値に追加します。

plus(time(firstValue('L_TIME')), 'seconds', 50) //adds 50 seconds to the time value

Object timeAt (String time, String period) { expression })

評価された式のコンテキストをtimeString時間に変更します - 定義された期間{HOUR、H、MINUTE、SECOND}によって集計されます。

Object timeInterval (String from, String to, period) { expression })

式の時間コンテキストを変更し、指定された間隔from - toで集計された式を評価します。定義された期間{HOUR、H、MINUTE、SECOND}による集計も実行されます。

Object withoutDateTime() { expression })

日時間隔なしで式を評価します。

廃止された関数

これらの関数は、今後のリリースで削除される可能性があります。

関数

説明

Object value(String dateString, String indicator)

指定した日付にインジケータの値を読み込みます。

Object value(String dateString, int drill_down_level)

N個の以前のレベルで集計された指定の日付にインジケータの値を読み込みます。

Object value(String dateFrom, String dateTo, String indicator)

指定された日付間隔の累積インジケータの値を読み込みます。

Object value(String dateFrom, String dateTo, String indicator, int dril_down_level)

N個の以前のレベルで集計された指定された日付間隔の累積インジケータの値を読み込みます。

高度な関数

 

関数

説明

Number cumulateFromDate(String startDate, String indicator)

この関数は、累積値に現在の値を徐々に追加します。例:

 

01/2011

02/2011

03/2011

M_NAME_1

1000

1200

1300

cumulateFromDate('2011-01-01', 'M_NAME_1')

1000

2200

3500

Number cumulateFromTime(String startTime, String indicator)

この関数は、累積値に現在の値を徐々に追加します。例:

 

00:01

00:02

00:03

M_NAME_1

1000

1200

1300

cumulateFromTime('00:01', 'M_NAME_1')

1000

2200

3500

prev(String indicatorCode)

前の日付や時刻の値(例えば、前月、日、時間など)に対して計算し渡されたインジケータの値。例:

 

01/2011

02/2011

03/2011

M_NAME_1

1000

1200

1300

prev('M_NAME_1')

 

1000

1200

Number prev(String indicatorCode, int prevLevelAgg)

前の日付または時刻の値(例えば、前月、日、時間など)に対して計算し渡されたインジケータの値。パラメーターprevLevelAggは、集約する必要がある以前のレベルの数を表します。

Number next(String indicatorCode)

次の日付または時刻の値に対して計算された渡されたインジケータの値(例えば、 来月、日、時間など)。例:

 

01/2011

02/2011

03/2011

M_NAME_1

1000

1200

1300

next('M_NAME_1')

1200

1300

 

Number next(String indicatorCode, int prevLevelAgg)

次の日付または時刻の値に対して計算し渡されたインジケータの値(例: 来月、日、時間など)。パラメーターprevLevelAggは、集約する必要がある以前のレベルの数を表します。

int daysBetween(DateTime dateFrom, DateTime dateTo)

 この関数は、指定された日付間の日数を計算します。

int daysBetween(DateTime dateFrom, DateTime dateTo, int[])

この関数は、指定された日付間の日数を計算し、選択した曜日を除外します。曜日は番号で参照されます: 1は月曜日、7は日曜日です。 

次の例は、計算から土曜日と日曜日を除外する方法を示しています:

daysBetween(date(firstValue('L_DATE_FROM'),date(firstValue('L_DATE_TO'), 6,7)

int daysBetween(LocalDate dateFrom, LocalDate dateTo)

この関数は、指定された日付間の日数を計算します。

int monthsBetween(DateTime dateFrom, DateTime dateTo)

この関数は、指定された日付間の月数を計算します。

int monthsBetween(LocalDate dateFrom, LocalDate dateTo)

この関数は、指定された日付間の月数を計算します。

int yearsBetween(DateTime dateFrom, DateTime dateTo)

この関数は、指定された日付間の年数を計算します。

int yearsBetween(LocalDate dateFrom, LocalDate dateTo)

この関数は、指定された日付間の年数を計算します。

評価された式のコンテキスト全体を変更するには、次の関数を使用できます:

Number prev(String period, { expression })

式のコンテキストを、目的の前の日付期間に変更します。periodパラメーターの値は、DAYWEEKMONTHQUARTERYEARのいずれかです。例:

 

01/2011

02/2011

03/2011

M_NAME_1

1000

1200

1300

prev(MONTH) { M_NAME_1 } 

 

1000

1200

Number next(String period, { expression })

式のコンテキストを、目的の次の日付期間に変更します。periodパラメーターの値は、DAYWEEKMONTHQUARTERYEARのいずれかです。

次の例は、実際の表/チャートの日時エントリーの1年前にロードされた値で機能します。

return prev(YEAR) {
  M_NAME_1 / M_NAME_2 * 100
}

フルネーム (Y,Q,M,W,D) の代わりに、時間単位の最初の文字のみ(式を変更する時間コンテキストの場合)を入力できます。例えば、prev(Y){}

入れ子式

日時関数は組み合わせることができます(該当する場合)。例:2010年12月8日 9:04:02AMのM_INDICATORの値:

dateAt ('2010-12-08') { timeAt('09:04:02') { M_INDICATOR } }

次に