如何制作这样的SOQL查询?
SELECT id FROM Account WHERE LastActivityDate = 30_DAYS_AGO
这会产生错误:
MALFORMED_QUERY:
Account WHERE LastActivityDate = 30_DAYS_AGO
^
答案 0 :(得分:17)
SELECT id FROM Account WHERE LastActivityDate = LAST_N_DAYS:30
答案 1 :(得分:13)
当您从顶点执行此操作时,您可以在顶点计算日期,然后将其绑定到查询中,例如
date d = system.today().addDays(-30);
Account [] acc= [select id from account where createdDate = :d];
答案 2 :(得分:7)
Select Id from Account Where LastActivityDate = N_DAYS_AGO:30
答案 3 :(得分: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
答案 4 :(得分: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”相当于说日期大于或等于上个月第一天的开始且小于或等于最后一天的结束。
答案 5 :(得分:0)
自30天前开始,您就使用它-
SELECT ID FROM Account WHERE LastActivityDate < LAST_N_DAYS:30