如何制作这样的SOQL查询?SOQL查询WHERE日期= 30_days_ago?
SELECT id FROM Account WHERE LastActivityDate = 30_DAYS_AGO
这将产生一个错误:
MALFORMED_QUERY:
Account WHERE LastActivityDate = 30_DAYS_AGO
^
如何制作这样的SOQL查询?SOQL查询WHERE日期= 30_days_ago?
SELECT id FROM Account WHERE LastActivityDate = 30_DAYS_AGO
这将产生一个错误:
MALFORMED_QUERY:
Account WHERE LastActivityDate = 30_DAYS_AGO
^
正如你从顶点这样做,你可以计算顶点的日期,然后绑定该到你的查询,例如
date d = system.today().addDays(-30);
Account [] acc= [select id from account where createdDate = :d];
SELECT id FROM Account WHERE LastActivityDate = LAST_N_DAYS:30
Select Id from Account Where LastActivityDate = N_DAYS_AGO:30
我们没有N_DAYS_AGO:30的salesforce – C0DEPirate 2017-10-31 14:21:33
LAST_WEEK
和LAST_MONTH
也很容易,并且运作良好。
SELECT id FROM Account WHERE LastActivityDate > LAST_MONTH
的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”相当于说日期大于或等于上个月的第一天的开始并且小于或等于最后一天的结束。
您是在Web服务调用中还是在Apex代码中执行此查询?如果这是在Apex中,superfell的答案是正确的。 – 2011-03-09 19:22:40
通过web服务,但我只是在程序中声明日期并将其作为字符串作为特定日期传递给查询。 – 2011-03-09 20:23:29
我以为你使用顶点,因为你用顶点标记了问题。 – superfell 2011-03-10 06:54:33