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

WHERE での日付形式と日付リテラル

WHERE 句に日付値または日付リテラルを指定して、SOQL クエリの結果を絞り込むことができます。日付は特定の日や時間を表します。一方、日付リテラルは相対的な時間の範囲、たとえば先月、今週、来年などを表します。

Salesforce から返される日付と時間の書式設定については、「FORMAT ()」および「convertTimezone()」を参照してください。

日付を使用したクエリ結果の絞り込み

WHERE 句の fieldExpression は、date および dateTime 項目に基づくクエリ結果の絞り込みをサポートしています。項目名と指定の日付値の間で比較演算子を使用して、条件に一致する結果を絞り込むことができます。たとえば、次のクエリは、指定された日時より後に作成された Account レコードを絞り込みます。

特定の日付に基づいてクエリ結果を絞り込むには、date 形式を使用して値を設定します。特定の日時に基づいてクエリ結果を絞り込むには、dateTime 形式を使用して値を設定します。

次の表は、SOQL クエリの WHERE 句で使用可能なサポートされる datedateTime の形式を示しています。

項目の型 表示形式
date YYYY-MM-DD 1999-01-01
dateTime
  • YYYY-MM-DDThh:mm:ss+hh:mm
  • YYYY-MM-DDThh:mm:ss-hh:mm
  • YYYY-MM-DDThh:mm:ssZ
  • 1999-01-01T23:01:01+01:00
  • 1999-01-01T23:01:01-08:00
  • 1999-01-01T23:01:01Z

dateTime 項目の値は協定世界時 (UTC) として Salesforce に保存されますが、タイムゾーンのオフセットを使用すれば、別のタイムゾーンの dateTime 値を得ることもできます。タイムゾーンのオフセットは必ず UTC を基準とします。

dateTime 形式とタイムゾーンのオフセットについての詳細は、次を参照してください。

日付リテラルを使用したクエリ結果の絞り込み

WHERE 句の fieldExpression で日付リテラルを使用して、日付の範囲を基準にクエリ結果を絞り込むことができます。たとえば、過去 3 か月以内に作成されたクエリ結果を絞り込んだり、期限が次の会計年度より後の結果を絞り込んだりできます。

各日付リテラルは、本日を基準にした時間の範囲を表します。範囲の正確な開始と終了は、日付リテラルと、クエリを送信するユーザのロケールによって決まります。ユーザが個人のロケールを設定していない場合、範囲は組織のロケールによって決まります。詳細は、Salesforce ヘルプ「言語、ロケール、通貨の選択」を参照してください。

範囲内の結果を絞り込むには、比較演算子の = を使用します。範囲の一方の側の結果を絞り込むには、比較演算子の > または < を使用します。次の表は、日付リテラルとその範囲、および例の一覧を示しています。

日付リテラル 範囲
YESTERDAY 前日の 00:00:00 UTC から、その 24 時間後までが指定されます。 SELECT Id FROM Account WHERE CreatedDate = YESTERDAY
TODAY 本日の 00:00:00 UTC から、その 24 時間後までが指定されます。 SELECT Id FROM Account WHERE CreatedDate > TODAY
TOMORROW 翌日の 00:00:00 UTC から、その 24 時間後までが指定されます。 SELECT Id FROM Opportunity WHERE CloseDate = TOMORROW
LAST_WEEK 前週の最初の日の 00:00:00 UTC から、その 7 日後までが指定されます。ロケールによって、週の開始曜日が決まります。 SELECT Id FROM Account WHERE CreatedDate > LAST_WEEK
THIS_WEEK 今週の最初の日の 00:00:00 UTC から、その 7 日後までが指定されます。ロケールによって、週の開始曜日が決まります。 SELECT Id FROM Account WHERE CreatedDate < THIS_WEEK
NEXT_WEEK 翌週の最初の日の 00:00:00 UTC から、その 7 日後までが指定されます。ロケールによって、週の開始曜日が決まります。 SELECT Id FROM Opportunity WHERE CloseDate = NEXT_WEEK
LAST_MONTH 前月の最初の日の 00:00:00 UTC から、その月のすべての日が指定されます。 SELECT Id FROM Opportunity WHERE CloseDate > LAST_MONTH
THIS_MONTH 今月の最初の日の 00:00:00 UTC から、その月のすべての日が指定されます。 SELECT Id FROM Account WHERE CreatedDate < THIS_MONTH
NEXT_MONTH 翌月の最初の日の 00:00:00 UTC から、その月のすべての日が指定されます。 SELECT Id FROM Opportunity WHERE CloseDate = NEXT_MONTH
LAST_90_DAYS 本日から、その 90 日前までが指定されます。

この範囲には、過去の日だけではなく、本日も含まれます。したがって、含まれる日数の合計は 91 日となります。

SELECT Id FROM Account WHERE CreatedDate = LAST_90_DAYS
NEXT_90_DAYS 翌日の 00:00:00 UTC から、その 90 日後までが指定されます。 SELECT Id FROM Opportunity WHERE CloseDate > NEXT_90_DAYS
LAST_N_DAYS:n 数値 n が指定されている場合、本日から、その n 日前までが指定されます。

この範囲には、過去の日だけではなく、本日も含まれます。たとえば、LAST_N_DAYS:1 には、昨日と本日が含まれます。

SELECT Id FROM Account WHERE CreatedDate = LAST_N_DAYS:365
NEXT_N_DAYS:n 数値 n が指定されている場合、翌日の 00:00:00 UTC から、その n 日後までが指定されます。

この範囲には、本日は含まれません。たとえば、NEXT_N_DAYS:1TOMORROW と同じです。

SELECT Id FROM Opportunity WHERE CloseDate > NEXT_N_DAYS:15
N_DAYS_AGO:n n 日前の 00:00:00 から、その 24 時間後までが指定されます。 SELECT Id FROM Opportunity WHERE CloseDate = N_DAYS_AGO:25
NEXT_N_WEEKS:n 数値 n が指定されている場合、翌週の最初の日の 00:00:00 UTC から、その n 週後までが指定されます。 SELECT Id FROM Opportunity WHERE CloseDate > NEXT_N_WEEKS:4
LAST_N_WEEKS:n 数値 n が指定されている場合、前週の最後の日の 00:00:00 UTC から、その n 週前までが指定されます。 SELECT Id FROM Account WHERE CreatedDate = LAST_N_WEEKS:52
N_WEEKS_AGO:n n 週前の最初の日の 00:00:00 から、その 7 日後までが指定されます。ロケールによって、週の開始曜日が決まります。 SELECT Id FROM Opportunity WHERE CloseDate = N_WEEKS_AGO:3
NEXT_N_MONTHS:n 数値 n が指定されている場合、翌月の最初の日の 00:00:00 UTC から、その n 月後までが指定されます。 SELECT Id FROM Opportunity WHERE CloseDate > NEXT_N_MONTHS:2
LAST_N_MONTHS:n 数値 n が指定されている場合、前月の最後の日の 00:00:00 UTC から、その n 月前までが指定されます。 SELECT Id FROM Account WHERE CreatedDate = LAST_N_MONTHS:12
N_MONTHS_AGO:n n か月前の最初の日の 00:00:00 から、その月のすべての日が指定されます。 SELECT Id FROM Opportunity WHERE CloseDate = N_MONTHS_AGO:6
THIS_QUARTER 今四半期の最初の日の 00:00:00 UTC から、今四半期の終わりまでが指定されます。 SELECT Id FROM Account WHERE CreatedDate = THIS_QUARTER
LAST_QUARTER 前四半期の 00:00:00 UTC から、その四半期の終わりまでが指定されます。 SELECT Id FROM Account WHERE CreatedDate > LAST_QUARTER
NEXT_QUARTER 翌四半期の 00:00:00 UTC から、その四半期の終わりまでが指定されます。 SELECT Id FROM Account WHERE CreatedDate < NEXT_QUARTER
NEXT_N_QUARTERS:n 翌四半期の 00:00:00 UTC から、n 期後の四半期の終わりまでが指定されます。 SELECT Id FROM Account WHERE CreatedDate < NEXT_N_QUARTERS:2
LAST_N_QUARTERS:n n 期前の四半期の最初の日の 00:00:00 UTC から、前四半期の最終日の終わりまでが指定されます。 SELECT Id FROM Account WHERE CreatedDate > LAST_N_QUARTERS:2
N_QUARTERS_AGO:n n 期前の四半期の 00:00:00 から、その四半期の終わりまでが指定されます。 SELECT Id FROM Opportunity WHERE CloseDate = N_QUARTERS_AGO:3
THIS_YEAR 今年の 1 月 1 日 00:00:00 UTC から、今年の 12 月 31 日の終わりまでが指定されます。 SELECT Id FROM Opportunity WHERE CloseDate = THIS_YEAR
LAST_YEAR 前年の 1 月 1 日 00:00:00 UTC から、その年の 12 月 31 日の終わりまでが指定されます。 SELECT Id FROM Opportunity WHERE CloseDate > LAST_YEAR
NEXT_YEAR 翌年の 1 月 1 日 00:00:00 UTC から、その年の 12 月 31 日の終わりまでが指定されます。 SELECT Id FROM Opportunity WHERE CloseDate < NEXT_YEAR
NEXT_N_YEARS:n 翌年の 1 月 1 日 00:00:00 UTC から、n 年後の 12 月 31 日の終わりまでが指定されます。 SELECT Id FROM Opportunity WHERE CloseDate < NEXT_N_YEARS:5
LAST_N_YEARS:n n 年前の 1 月 1 日 00:00:00 UTC から、前年の 12 月 31 日の終わりまでが指定されます。 SELECT Id FROM Opportunity WHERE CloseDate > LAST_N_YEARS:5
N_YEARS_AGO:n n 年前の 1 月 1 日 00:00:00 から、その年の 12 月 31 日の終わりまでが指定されます。 SELECT Id FROM Opportunity WHERE CloseDate = N_YEARS_AGO:2
THIS_FISCAL_QUARTER 現在の会計四半期の最初の日の 00:00:00 UTC から、その会計四半期の最終日の終わりまでが指定されます。会計年度は、[設定] の [会計年度] ページで定義されます。 SELECT Id FROM Account WHERE CreatedDate = THIS_FISCAL_QUARTER
LAST_FISCAL_QUARTER 前会計四半期の最初の日の 00:00:00 UTC から、その会計四半期の最終日の終わりまでが指定されます。会計年度は、[設定] の [会計年度] ページで定義されます。 SELECT Id FROM Account WHERE CreatedDate > LAST_FISCAL_QUARTER
NEXT_FISCAL_QUARTER 翌会計四半期の最初の日の 00:00:00 UTC から、その会計四半期の最終日の終わりまでが指定されます。会計年度は、[設定] の [会計年度] ページで定義されます。 SELECT Id FROM Account WHERE CreatedDate < NEXT_FISCAL_QUARTER
NEXT_N_FISCAL_​QUARTERS:n 翌会計四半期の最初の日の 00:00:00 UTC から、n 期後の会計四半期の最終日の終わりまでが指定されます。会計年度は、[設定] の [会計年度] ページで定義されます。 SELECT Id FROM Account WHERE CreatedDate < NEXT_N_FISCAL_QUARTERS:6
LAST_N_FISCAL_​QUARTERS:n n 期前の会計四半期の最初の日の 00:00:00 UTC から、前会計四半期の最終日の終わりまでが指定されます。会計年度は、[設定] の [会計年度] ページで定義されます。 SELECT Id FROM Account WHERE CreatedDate > LAST_N_FISCAL_QUARTERS:6
N_FISCAL_QUARTERS_AGO:n n 期前の会計四半期の最初の日の 00:00:00 から、n 期前の会計四半期の最終日の終わりまでが指定されます。会計年度は、[設定] の [会計年度] ページで定義されます。 SELECT Id FROM Opportunity WHERE CloseDate = N_FISCAL_QUARTERS_AGO:6
THIS_FISCAL_YEAR 現在の会計年度の最初の日の 00:00:00 UTC から、その会計年度の最終日の終わりまでが指定されます。会計年度は、[設定] の [会計年度] ページで定義されます。 SELECT Id FROM Opportunity WHERE CloseDate = THIS_FISCAL_YEAR
LAST_FISCAL_YEAR 前会計年度の最初の日の 00:00:00 UTC から、その会計年度の最終日の終わりまでが指定されます。会計年度は、[設定] の [会計年度] ページで定義されます。 SELECT Id FROM Opportunity WHERE CloseDate > LAST_FISCAL_YEAR
NEXT_FISCAL_YEAR 翌会計年度の最初の日の 00:00:00 UTC から、その会計年度の最終日の終わりまでが指定されます。会計年度は、[設定] の [会計年度] ページで定義されます。 SELECT Id FROM Opportunity WHERE CloseDate < NEXT_FISCAL_YEAR
NEXT_N_FISCAL_​YEARS:n 翌会計年度の最初の日の 00:00:00 UTC から、n 年後の会計年度の最終日の終わりまでが指定されます。会計年度は、[設定] の [会計年度] ページで定義されます。 SELECT Id FROM Opportunity WHERE CloseDate < NEXT_N_FISCAL_YEARS:3
LAST_N_FISCAL_​YEARS:n n 年前の会計年度の最初の日の 00:00:00 UTC から、前会計年度の最終日の終わりまでが指定されます。会計年度は、[設定] の [会計年度] ページで定義されます。 SELECT Id FROM Opportunity WHERE CloseDate > LAST_N_FISCAL_YEARS:3
N_FISCAL_YEARS_AGO:n n 年前の会計年度の最初の日の 00:00:00 から、その会計年度の最終日の終わりまでが指定されます。会計年度は、[設定] の [会計年度] ページで定義されます。 SELECT Id FROM Opportunity WHERE CloseDate = N_FISCAL_YEARS_AGO:3

FISCAL 日付リテラルを使用するには、最初に Salesforce でカスタム会計年度を定義する必要があります。FISCAL 日付リテラルを使用する場合、定義されている会計年度の範囲を超えた時間範囲を指定すると、日付が無効であるというエラーが返されます。

本日が日付リテラルの範囲に含まれるかどうかは、使用する日付リテラルによって決まります。
  • LAST_N_UNIT:nUNIT が、DAYS を除くいずれかの単位である場合、日付リテラルに本日は含まれません。したがって、たとえば、LAST_N_WEEKS:1 に本日は含まれません。
  • LAST_N_DAYS:n および LAST_90_DAYS の 2 つの日付リテラルには、本日が含まれます。したがって、たとえば、LAST_N_DAYS:1 には、昨日と本日が含まれます。また、LAST_90_DAYS には、90 日ではなく、91 日が含まれます。
各種の日付リテラルに含まれるものと含まれないものを示すダイアグラム。

日付の最小値と最大値

特定の範囲内の日付のみが有効です。最も早い有効な日付は 1700-01-01T00:00:00Z GMT、つまり、1700 年 1 月 1 日の午前 0 時です。最も遅い有効な日付は 4000-12-31T00:00:00Z GMT、つまり、4000 年 12 月 31 日の午前 0 時です。これらの値は、タイムゾーンごとのオフセットとなります。たとえば、太平洋タイムゾーンでは、最も早い有効な日付は 1699-12-31T16:00:00、つまり 1699 年 12 月 31 日の午後 4 時です。