このようなSOQLクエリを作成するにはどうすればよいですか?
SELECT id FROM Account WHERE LastActivityDate = 30_DAYS_AGO
これにより、エラーが発生します。
MALFORMED_QUERY:
Account WHERE LastActivityDate = 30_DAYS_AGO
^
このようなSOQLクエリを作成するにはどうすればよいですか?
SELECT id FROM Account WHERE LastActivityDate = 30_DAYS_AGO
これにより、エラーが発生します。
MALFORMED_QUERY:
Account WHERE LastActivityDate = 30_DAYS_AGO
^
SELECT id FROM Account WHERE LastActivityDate = LAST_N_DAYS:30
apexからこれを実行しているときに、apexで日付を計算し、それをクエリにバインドできます。
date d = system.today().addDays(-30);
Account [] acc= [select id from account where createdDate = :d];
Select Id from Account Where LastActivityDate = N_DAYS_AGO:30
LAST_WEEK
また、LAST_MONTH
簡単でうまく機能します。
SELECT id FROM Account WHERE LastActivityDate > LAST_MONTH
詳細なデータについては、次のリンクを参照してください:http: //www.salesforce.com/us/developer/docs/officetoolkit/Content/sforce_api_calls_soql_select_dateformats.htm
SOQL日付関数のページはここに移動したようです:https ://developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta/soql_sosl/sforce_api_calls_soql_select_dateformats.htm
明確にするために、SOQLでは、比較演算子を使用して、日付フィールド(LastActivityDateなど)を日付の範囲と比較できます。したがって、「LastActivityDate = LAST_MONTH」は、日付が前月の初日の開始日以上であり、最終日の終了日以下であることを意味します。
30日前なのでこれを使って-
SELECT ID FROM Account WHERE LastActivityDate < LAST_N_DAYS:30
クエリ期間は、指定された時間が広い数値であるため、SFDCが使用するのに最適な日付リテラルにあります。日数を指定するだけで、'='、'>'または'<'
LAST_N_DAYS:n LAST_N_WEEKS:n LAST_N_MONTHS:n LAST_N_YEAR:n
NEXT_N_DAYS:n NEXT_N_WEEKS:n NEXT_N_MONTHS:n NEXT_N_YEAR:n
に該当する日/月の数を指定した場合、クエリはより単純に見えます。
SELECT id FROM Account WHERE LastActivityDate = LAST_N_MONTHS:1
また
SELECT id FROM Account WHERE LastActivityDate = LAST_N_DAYS:30
ありがとう、OQ。