この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

日付関数

SAQL クエリで日付を指定するには、日付関数と相対日付キーワードを使用します。

関数

相対日付は、ローカル時間ではなく UTC に対して相対的です。相対日付で返された日付は UTC 時間に基づく日付を反映するため、ローカル時間からのオフセットになる場合があります。

メモ

次の表は、SAQL 日付関数の一覧です。
日付関数 説明
date(year, month, day) 日付を返します。日付の 3 つのディメンションを年、月、日の順序で指定します。次に例を示します。
date_diff(datepart,startdate,enddate) 2 つの日付間で経過した間隔を表す整数を返します。
datepart は、計算する間隔要素を示します。
  • year
  • month
  • quarter
  • day
  • week
  • hour
  • minute
  • second
startdate は開始日を示します。

enddate は終了日を示します。

2 つの日付の差は、指定された日付要素の違いに基づいて計算されます。たとえば、2 つの日付の年の差は、enddate の年要素から startdate の年要素が差し引かれて計算されます。

date_diff("year", toDate("31-12-2015", "dd-MM-yyyy"), toDate("1-1-2016", "dd-MM-yyyy")) の結果は 1 になります。

同じように、日付要素の月を使用した例を次に示します。

date_diff("month", toDate("31-12-2015", "dd-MM-yyyy"), toDate("1-1-2016", "dd-MM-yyyy")) の結果も 1 です。

startdateenddate より後である場合、結果は差を表す、負の整数になります。
例:
クエリ 結果
date_diff("year", '2004-02-29', '2005-02-28’) 1
date_diff("year", '2012-1-1', '2012-12-31’) 0
date_diff("month", '2003-02-01', '2003-05-01’) 3
date_diff("month", '2004-02-28', '2004-03-31’) 1
date_diff("quarter", '2012-12-12', '2013-01-05') 1
date_diff("week", '2012-12-12', '2013-01-05') 3
date_diff("day", '2012-12-12', '2013-01-05') 24
date_diff("hour", '2012-12-12', '2013-01-05') 576
date_diff("minute”, '2012-12-12', '2013-01-05') 34560
date_diff("second”, '2016-09-15 19:42:36', '2016-09-16 19:42:36') 86400

クエリの例:

無効な例:

dateRange(startArray_y_m_d, endArray_y_m_d) 固定日付範囲を返します。最初のパラメータは、範囲の開始日を指定する配列です。2 番目のパラメータは、範囲の終了日を指定する配列です。以下に例を示します。
day_in_month(date) 特定の日付がその月の何日目かを表す整数を返します。使用法については day_in_week を参照してください。
day_in_quarter(date) 特定の日付がその四半期の何日目かを表す整数を返します。使用法については day_in_week を参照してください。
day_in_week(date) 特定の日付の曜日を表す整数を返します。1 = 日曜日、2 = 月曜日というようになります。

date は参照日を示します。

例:
day_in_year(date) 特定の日付がその年の何日目かを表す整数を返します。使用法については day_in_week を参照してください。
daysBetween(date1, date2) 2 つの日付間の日数を整数で返します。
daysBetween() 関数は、ディメンションを直接引数として取ることはできません。toDate() および now(​) 関数を引数として渡します。
month_days(date) 特定の日付に対応する月の日数を返します。

date は参照日を示します。

例:
クエリ 結果
month_days(toDate('2004-02-12', "yyyy-MM-dd") 29
month_days(toDate('2012-04-07', "yyyy-MM-dd") 30
month_days(toDate('1990-13-11', "yyyy-MM-dd") Null

クエリの例:

無効な例:

month_last_day(date) 特定の日付に対応する月の最終日の日付を返します。使用法については week_last_day を参照してください。
now() UTC で現在の日時を返します。この関数は、foreach ステートメントでのみ有効です。

一般的に、この関数は daysBetween(​) および toString() 関数で使用されます。

quarter_days(date)s 特定の日付に対応する四半期の日数を返します。使用法については month_days を参照してください。
quarter_last_day(date) 特定の日付に対応する四半期の最終日の日付を返します。使用法については week_last_day を参照��てください。
toDate(string [,formatString]) 文字列を日付に変換します。formatString 引数が指定されていない場合は yyyy-MM-dd HH:mm:ss 形式が使用されます。

多くの場合、この関数は daysBetween(​) または toString() に引数として渡されます。

toDate(epoch_seconds) UNIX のエポック秒を日付に変換します。epoch_seconds0 の場合、toDate(epoch_seconds)'1970-01-01 00:00:00' を返します。

この関数は、日付への期間の加算または日付からの期間の減算を行う場合に便利です。日付のタイムゾーンの違いを調整するときに時差を秒数で加算または減算すると、正しいローカル日付が算出されます。その時間がローカル子午線を越えている場合は、別の日付が算出されます。

たとえば、Current_Date'1970-01-01 00:00:00' からの秒数で表される現在日付の場合、関数 toDate(Current_Date - 8*3600) は 8 時間を減算します。実例については、「タイムゾーンの使用」を参照してください。

toString(date, formatString) 日付を文字列に変換します。
この関数は、最初の引数として toDate() または now(​) 関数を取る必要があります。
week_last_day(date) 特定の日付に対応する週の最終日の日付を返します。

date は参照日を示します。

例:
クエリ 結果
week_last_day(toDate('2016-12-08', "yyyy-MM-dd")) 2016-12-10
week_last_day(toDate('2015-07-05', "yyyy-MM-dd")) 2015-07-11
week_last_day(toDate('2012-11-33', "yyyy-MM-dd")) エラー

クエリの例:

無効な例:

year_days(date) 特定の日付に対応する年の日数を返します。使用法については month_days を参照してください。
year_last_day(date) 特定の日付に対応する年の最終日の日付を返します。使用法については week_last_day を参照してください。

この関数が常に 12 月 31 日を返すことは明らかですが、年末までの日数を割り出すというような用途、および特定のロケールでの用途のために、この関数は組み込まれています。

メモ

固定日付範囲の指定

固定日付の範囲を指定するには、dateRange() 関数を使用します。日付を年、月、日の順序で指定します。

相対日付範囲の指定

相対日付範囲を指定するには、相対日付キーワードを含む配列で in 演算子を使用します。次に、4 つの例を示します。

次の相対日付キーワードがあります。
  • current day
  • n day(s) ago
  • n day(s) ahead
  • current week
  • n week(s) ago
  • n week(s) ahead
  • current month
  • n month(s) ago
  • n month(s) ahead
  • current quarter
  • n quarter(s) ago
  • n quarter(s) ahead
  • current fiscal_quarter
  • n fiscal_quarter(s) ago
  • n fiscal_quarter(s) ahead
  • current year
  • n year(s) ago
  • n year(s) ahead
  • current fiscal_year
  • n fiscal_year(s) ago
  • n fiscal_year(s) ahead
次の表に、いくつかの相対日付キーワードの時間枠を示します。これらの時間枠の例では、現在の日付は 2014/12/16FiscalMonthOffeset 1 (会計年度は 2 月 1 日に開始) です。
相対日付値キーワード 開始日 終了日
current day 2014/12/16 00:00:00 2014/12/16 23:59:59
current quarter 2014/10/1 00:00:00 2014/12/31 23:59:59
1 year ago 2013/1/1 00:00:00 2013/12/31 23:59:59
1 month ahead 2015/1/1 00:00:00 2015/1/31 23:59:59
current fiscal_year 2014/2/1 00:00:00 2015/1/31 23:59:59
current fiscal_quarter 2014/11/1 00:00:00 2015/1/31 23:59:59
2 fiscal_quarters ahead 2015/5/1 00:00:00 2015/7/31 23:59:59
current day - 1 year 2013/12/16 00:00:00 2013/12/16 23:59:59
current fiscal_year + 5 days 2014/2/6 00:00:00 2014/2/6 23:59:59

標準会計期間のみがサポートされています。Salesforce ヘルプの「会計年度について」を参照してください。

メモ

日付の加算と減算

相対日付キーワードを使用して、日付の加算と減算を実行できます。

次に、加算と減算を使用した相対日付キーワードの時間枠の例を示します。これらの時間枠の例では、現在の日付は 2014/12/16FiscalMonthOffeset 1 (会計年度は 2 月 1 日に開始) です。

次のクエリでは、開始日は 2013-12-16 00:00:00 で終了日は無制限です。
次のクエリでは、開始日は 2014-12-16 00:00:00 で終了日は 2017-3-31 23:59:59 です。
終了日は次のように決定されます。年は 2014 であるため 2 年後は 2016 になり、2016 年の終了時間は 2016-12-31 23:59:59 です。3 か月を加算すると、合計終了日は 2017-3-31 23:59:59 です。
次のクエリでは、開始日は 2014-2-6 00:00:00 で終了日は 2017-3-31 23:59:59 です。

無制限の相対日付範囲の使用

「List all opportunities closed after 12/23/2014 (2014 年 12 月 23 日より後に成立したすべての商談をリストする)」や「Get a list of marketing campaigns from before 04/2/2015 (2015 年 4 月 2 日より前のマーケティングキャンペーンのリストを取得する)」のようなクエリを作成するには、無制限の日付範囲を使用します。

次の例は無制限の相対日付範囲です。

次の例は無制限の固定日付範囲です。OrderDate の日付形式は yyyy-MM-dd です。

タイムゾーンの使用

toDate() 関数の実用的な用途は、Wave ダッシュボードでのタイムゾーンの変更を計算することです。次の JSON コードフラグメントでは、変換に computeExpression アクションを使用し、saqlExpression を使用して toDate() 関数をコールします。この方法により、ローカルまたは UTC の最も適切な日時をダッシュボードに表示できます。

この例は、既存の日付 CreatedDate_sec_epoch を取得し、8 時間を減算して新しい日付 CreateDateNew を作成しています。次の表に、この計算によって (形式が適用された) CreatedDateNew 日付がどのように変更されるかを示します。いずれの場合も、時間の変更に伴い日付も変更されています。

CreatedDate_sec_epoch CreatedDateNew
2015-11-03T06:49:25.00OZ 11/2/2015
2014-08-19T06:42:33.00OZ 8/18/2014
2014-09-28T03:12:25.00OZ 9/27/2014

詳細は、「computeExpression 変換」 トピックを参照してください。