2013-07-11 73 views
2

我有一个控制器使用standardSetController来实现分页。我想根据过去13个月的交易日期进行过滤。日期文字没有Last_N_Months的过滤器:N最近13个月筛选

有没有一种方法可以在过去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个月的数据来限制结果。一旦我有了结果集,我想通过选项添加过滤。

感谢您的任何帮助。

回答

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]); 
0

按日期过滤你有LAST_90_DAYS或LAST_N_DAYS:90这样

SELECT Id FROM Account WHERE CreatedDate = LAST_N_DAYS:90 

内其他link

信息,并是在一个查询中检索到的总数为2000

+0

感谢您的回复。我可能没有正确地问我的问题。我查看了所有可用的日期文字。有没有办法只能回到过去13个月? – Dman100

+0

对不起,我认为3个月因为某种原因:) 所以只需使用LAST_N_DAYS:403这将给你最后大约13个月 –

+0

感谢您的帮助! – Dman100