Sharepoint列表日期格式

时间:2012-02-13 14:59:44

标签: sharepoint caml

sharepoint列表的日期格式为:M / D / YYYY 我必须在splist中的列:start_time和end_time,并且我必须编写一个查询,其中我得到那些“今天”日期大于或等于start_time且小于或等于end_time的字段。当然我也有几个小时:在我的专栏中分钟。我遇到的问题是我发现CAML日期格式是:yyyy / mm / ddThrs:min:ssZ。我知道要获取今天日期的标记,但如何从字段中更改日期格式,以便查询中的比较成功?

这是代码的一部分:

query.Append("<FieldRef Name = 'Start_Time'");
query.Append("/>");
query.Append("<Value Type ='DateTime'IncludeTimeValue='True'>");
query.Append("<Today/>");
query.Append("</Value>");

由于splist日期格式不是CAML日期格式

,因此比较将失败

2 个答案:

答案 0 :(得分:1)

尝试:

<Where>
  <And>
     <Geq>
        <FieldRef Name='start_time' />
        <Value Type='DateTime'><Now /></Value>
     </Geq>
     <Leq>
        <FieldRef Name='end_time' />
        <Value Type='DateTime'><Now /></Value>
     </Leq>
  </And>
</Where>

由于start_timeend_time实际上是Date类型而不是Text类型,因此像这样的查询应该有效。无论日期如何在屏幕上显示,日期都将使用CAML中的ISO8601格式。

注意,上面的CAML是在U2U CAML Query Builder的帮助下构建的。

答案 1 :(得分:0)

你真的应该检查linq for sharepoint。这将允许您非常轻松地使用CAML查询,SPMetal可以帮助您创建类似于您在代码中使用的日期的日期实体。

Here

Here