0
query.Query = @"<Where>
<And>
<BeginsWith>
<FieldRef Name='ContentTypeId'/>
<Value Type='Text'>[LONG GUID]</Value>
</BeginsWith>
<And>
<Geq>
<FieldRef Name='PublishingStartDate' />
<Value Type='DateTime'>2011-01-01T15:55:52Z</Value>
</Geq>
<Leq>
<FieldRef Name='PublishingStartDate' />
<Value Type='DateTime'>2011-01-01T15:55:52Z</Value>
</Leq>
</And>
</And>
</Where>
<OrderBy>
<FieldRef Name='PublishingStartDate' Ascending='FALSE' />
</OrderBy>";

上面的查询试图在两个日期之间恢复特定内容类型的所有项目,并按相同的日期字段排序(降序)。

编辑:我应该提到这是一个 SPSiteDataQuery

4

2 回答 2

1

我看不出你的 CAML 有什么问题。我注意到的一件事是 PublishingStartDate 过滤器值的值。Geq 和 Leq 都具有完全相同的日期时间值。

<Geq>
<FieldRef Name='PublishingStartDate' />
<Value Type='DateTime'>2011-01-01T15:55:52Z</Value>
</Geq>
<Leq>
<FieldRef Name='PublishingStartDate' />
<Value Type='DateTime'>2011-01-01T15:55:52Z</Value>
</Leq>

您确定两个过滤器都应该使用相同的日期时间吗?

于 2012-06-22T19:41:55.873 回答
0

也许现在回答这个问题为时已晚,但供进一步参考:问题是查询或视图字段中不能有新的行符号。我有同样的问题——如果你把所有的 CAML 放在一行上,它会起作用。

于 2016-10-05T07:56:41.660 回答