CAML Query Comparing DateTime with Eq



我正试图组合一个CAML查询来比较两个DateTime对象,但我无法使用Eq比较使其工作。从我的测试中,我可以得到Gt、Lt、Geq和Leq来进行DateTime比较,但Eq似乎根本不起作用。

第一个对象是日期和时间字段(由InfoPath生成并保存到SharePoint列表中的日期和时间域),当前示例为"2012年3月14日12:00 AM"。我曾尝试使用[Today/]值,使用ISO格式2012-03-14T00:00:00Z的硬编码值,但到目前为止没有任何效果。我已经尝试过IncludeTimeValue,将其设置为true/false,没有任何改进。

我当前的查询看起来有点像这样,

<Query>
 <Where>
  <Eq>
   <FieldRef Name="SomeDateTimeField" IncludeTimeValue="TRUE" />
   <Value Type="DateTime" IncludeTimeValue="TRUE">2012-03-14T00:00:00Z</Value>
  </Eq>
 </Where>
</Query>

这不会返回任何内容,即使我在列表中有一个具有该日期时间的项目。有什么想法吗?

Equal语句不能返回任何内容,因为秒是计数的。尝试使用日期范围。样品:

<Where>
 <And>
  <Gt>
   <FieldRef Name='Created' />
   <Value IncludeTimeValue='TRUE' Type='DateTime'>2014-12-10T00:00:00Z</Value>
  </Gt>
  <Lt>
   <FieldRef Name='Created' />
   <Value IncludeTimeValue='TRUE' Type='DateTime'>2014-12-10T23:59:59Z</Value>
  </Lt>
 </And>
</Where>

请注意,我们使用相同的日期,但不同的时间。

这行吗:

<Query><Where><Eq><FieldRef Name="SomeDateTimeField"/><Value IncludeTimeValue='TRUE' Type='DateTime'>2012-03-14T00:00:00</Value></Eq></Where></Query>

最新更新