SOQL查询WHERE日期= 30_days_ago?

时间:2011-03-08 22:09:11

标签: salesforce apex-code soql

如何制作这样的SOQL查询?

SELECT id FROM Account WHERE LastActivityDate = 30_DAYS_AGO

这会产生错误:

MALFORMED_QUERY: 
Account WHERE LastActivityDate = 30_DAYS_AGO
                      ^

6 个答案:

答案 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_WEEKLAST_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