WHERE での日付形式と日付リテラル
Salesforce から返される日付と時間の書式設定については、「FORMAT ()」および「convertTimezone()」を参照してください。
日付を使用したクエリ結果の絞り込み
WHERE 句の fieldExpression は、date および dateTime 項目に基づくクエリ結果の絞り込みをサポートしています。項目名と指定の日付値の間で比較演算子を使用して、条件に一致する結果を絞り込むことができます。たとえば、次のクエリは、指定された日時より後に作成された Account レコードを絞り込みます。
特定の日付に基づいてクエリ結果を絞り込むには、date 形式を使用して値を設定します。特定の日時に基づいてクエリ結果を絞り込むには、dateTime 形式を使用して値を設定します。
次の表は、SOQL クエリの WHERE 句で使用可能なサポートされる date と dateTime の形式を示しています。
| 項目の型 | 表示形式 | 例 |
|---|---|---|
| date | YYYY-MM-DD | 1999-01-01 |
| dateTime |
|
|
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:1 は TOMORROW と同じです。 |
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:n の UNIT が、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 時です。