8

このようなSOQLクエリを作成するにはどうすればよいですか?

SELECT id FROM Account WHERE LastActivityDate = 30_DAYS_AGO

これにより、エラーが発生します。

MALFORMED_QUERY: 
Account WHERE LastActivityDate = 30_DAYS_AGO
                      ^
4

7 に答える 7

18
SELECT id FROM Account WHERE LastActivityDate = LAST_N_DAYS:30
于 2011-03-28T21:11:08.293 に答える
15

apexからこれを実行しているときに、apexで日付を計算し、それをクエリにバインドできます。

date d = system.today().addDays(-30);
Account [] acc=  [select id from account where createdDate = :d];
于 2011-03-08T23:40:44.960 に答える
9
Select Id from Account Where LastActivityDate = N_DAYS_AGO:30
于 2012-07-11T18:51:33.850 に答える
1

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

于 2015-04-04T13:50:58.010 に答える
0

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」は、日付が前月の初日の開始日以上であり、最終日の終了日以下であることを意味します。

于 2015-09-17T02:37:05.057 に答える
0

30日前なのでこれを使って-

SELECT ID FROM Account WHERE LastActivityDate < LAST_N_DAYS:30
于 2018-10-04T16:06:37.920 に答える
0

クエリ期間は、指定された時間が広い数値であるため、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。

于 2021-09-22T07:27:50.753 に答える