当LastModifiedDate与两个日期进行比较时,Salesforce SOQL查询不返回行

问题描述:

并感谢您花时间查看我的帖子。当LastModifiedDate与两个日期进行比较时,Salesforce SOQL查询不返回行

我想检索两个日期之间修改的联系人列表(LastModifiedDate> = Date1和LastModifiedDate < = Date2)。当我查询我收到0行。如果我只拿出第二部分(LastModifiedDate < = Date2),我收到很多。

这里是我的代码和调试日志 - 先用两个日期:

DateTime myDate = DateTime.parse('10/05/2011 00:00 AM'); 
DateTime myLastDate = DateTime.valueOf('2012-02-7 05:04:25'); 
System.debug('the first date:' + String.valueOf(myDate) + ' and the last date: ' + String.valueOf(myLastDate)); 
List<Contact> cList = [select id, FirstName, LastName, LastModifiedDate FROM Contact WHERE Email <> '' AND Email <> null AND LastModifiedDate >= :myDate and lastModifiedDate <= :myLastDate]; 
system.debug('num cons' + cList.size()); 

调试

19:19:14.042 (42468000)|USER_DEBUG|[3]|DEBUG|the first date:2011-10-05 00:00:00 and the last date: 2012-02-07 05:04:25 
19:19:14.042 (42478000)|SYSTEM_METHOD_EXIT|[3]|System.debug(ANY) 
19:19:14.042 (42682000)|SOQL_EXECUTE_BEGIN|[4]|Aggregations:0|select id, FirstName, LastName, LastModifiedDate FROM Contact WHERE Email <> '' AND Email <> null AND LastModifiedDate >= :myDate and lastModifiedDate <= :myLastDate 
19:19:18.055 (4055043000)|SOQL_EXECUTE_END|[4]|Rows:0 

现在用一个日期

DateTime myDate = DateTime.parse('10/05/2011 00:00 AM'); 
DateTime myLastDate = DateTime.valueOf('2012-02-7 05:04:25'); 
System.debug('the first date:' + String.valueOf(myDate) + ' and the last date: ' + String.valueOf(myLastDate)); 
List<Contact> cList = [select id, FirstName, LastName, LastModifiedDate FROM Contact WHERE Email <> '' AND Email <> null AND LastModifiedDate >= :myDate ]; 
system.debug('num cons' + cList.size()); 

调试:

19:20:55.039 (39038000)|USER_DEBUG|[3]|DEBUG|the first date:2011-10-05 00:00:00 and the last date: 2012-02-07 05:04:25 
19:20:55.039 (39045000)|SYSTEM_METHOD_EXIT|[3]|System.debug(ANY) 
19:20:55.039 (39249000)|SOQL_EXECUTE_BEGIN|[4]|Aggregations:0|select id, FirstName, LastName, LastModifiedDate FROM Contact WHERE Email <> '' AND Email <> null AND LastModifiedDate >= :myDate 
19:21:06.555 (11555339000)|SOQL_EXECUTE_END|[4]|Rows:21784 

欢迎任何建议。

+3

我刚刚尝试过您的查询,因为它违背了我的组织结构并收回了行。你确定你确实有联系人在该日期范围内? – ryanbrainard 2012-02-09 18:32:10

+0

@rbrainard是的 - 请参阅调试。后来的日期是当前日期(或者当我运行查询时)。当我以500个批次运行它时,第一批几千人都在第一次约会。 – hgolov 2012-02-12 19:08:54

+0

我只想确认我可以将您的第一块代码在Force.com控制台中'按原样'运行,然后获取数据。对一个日期的调试显示,在第一次日期之后有行,但如果对“当前”日期之前修改的所有行运行它,会返回多少行?尝试仅使用其他日期运行它,看看会发生什么。 – 2012-02-13 17:03:17

它刚开始工作,没有任何变化,在我的结束。

感谢大家的帮助。