Salesforce SOQL查询,其中日期=30天前?
如何进行这样的SOQL查询Salesforce SOQL查询,其中日期=30天前?,salesforce,apex-code,soql,Salesforce,Apex Code,Soql,如何进行这样的SOQL查询 SELECT id FROM Account WHERE LastActivityDate = 30_DAYS_AGO 这会产生一个错误: MALFORMED_QUERY: Account WHERE LastActivityDate = 30_DAYS_AGO ^ 当您从apex执行此操作时,您可以在apex中计算日期,然后将其绑定到查询中,例如 date d = system.today().addDays(-30
SELECT id FROM Account WHERE LastActivityDate = 30_DAYS_AGO
这会产生一个错误:
MALFORMED_QUERY:
Account WHERE LastActivityDate = 30_DAYS_AGO
^
当您从apex执行此操作时,您可以在apex中计算日期,然后将其绑定到查询中,例如
date d = system.today().addDays(-30);
Account [] acc= [select id from account where createdDate = :d];
最后一周
和最后一个月
也很容易,而且效果很好
SELECT id FROM Account WHERE LastActivityDate > LAST_MONTH
有关更多数据,请查看此链接:SOQL日期函数的页面似乎已移至此处:
为了澄清这一点,SOQL允许使用比较运算符将日期字段(例如LastActivityDate)与一系列日期进行比较。因此,“LastActivityDate=LAST_MONTH”相当于说该日期大于或等于上个月第一天的开始,小于或等于最后一天的结束 由于是30天前,您可以使用此-
SELECT ID FROM Account WHERE LastActivityDate < LAST_N_DAYS:30
从LastActivityDate
您是在web服务调用中还是在Apex代码中执行此查询?如果这是在Apex中,superfell的答案是正确的。通过Web服务,但我只是在程序中声明了日期,并将其作为字符串作为特定日期传递给查询。我假设您正在使用Apex,因为您将问题标记为Apex。LAST_N_DAYS将是一种更好的方法,因为SOQL已经有了这样做的语法,或者他们以后再加上?我认为过去几天“我们正在使用它”
SELECT id FROM Account WHERE LastActivityDate > LAST_MONTH
SELECT ID FROM Account WHERE LastActivityDate < LAST_N_DAYS:30