我有一个使用standardSetController来实现分页的控制器。我想按照过去13个月的交易日期进行筛选。 Last_N_Months的日期文字没有过滤器:N
过去13个月我有没有办法过滤?
这是我当前的查询:
setCtrl = new ApexPages.StandardSetController(Database.getQueryLocator([select TransactionType__c, TradeDate__c, ShareClass__c,
SettlementDate__c, Name, Fund__r.Name, Fund__r.Id, FirstTransaction__c, DCPosition__c, DBR__r.Name, DBR__r.Id, DBR__c,
Amount__c from Transaction__c where DBRPrimaryContact__r.Contact__c =: con.Id ORDER BY TradeDate__c ASC]));
如果我无法过滤13个月,查询中可以返回的记录总数是多少?是2000吗?此对象可能有大量记录,我希望将结果限制为13个月的数据。一旦我有了结果集,我想按选项添加过滤。
感谢您的帮助。
答案 0 :(得分:2)
尝试使用以下代码过滤日期范围 - 您可以以编程方式计算确切的日期范围
DATE d1 = date.today();
Date d2 = d1.addMonths(-13);
Integer d3 = d2.daysBetween(d1);
System.debug('*************' + [SELECT Id FROM Account WHERE CreatedDate >= :d2 AND CreatedDate <=:d1]);
答案 1 :(得分:0)
按日期过滤,您有LAST_90_DAYS或LAST_N_DAYS:90这样
SELECT Id FROM Account WHERE CreatedDate = LAST_N_DAYS:90
此link
中的详细信息是的,在一个查询中检索的总数是2000