【问题标题】:Sharepoint list date formatSharepoint 列表日期格式
【发布时间】:2012-02-14 00:01:56
【问题描述】:

共享点列表的日期格式为: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 日期格式

【问题讨论】:

    标签: sharepoint caml


    【解决方案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 的帮助下构建的。

    【讨论】:

      【解决方案2】:

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

      Here

      Here

      【讨论】:

      • 我们使用的是 sp2007,你给我的链接似乎只谈论 sp2010。有没有办法将 SPLIST 本身中的日期格式更改为 CAML 日期格式,这样我的查询应该可以正常工作
      • 您是否尝试将 SPMetal 运行到您的共享点站点?我很确定它也适用于 2007 年。另一个最简单的解决方案是将这些日期列为您想要的任何格式的字符串。您必须覆盖每个 webparts 才能正确解析您的字符串以日期对象。
      • 是否已经具有正确的 CAML 日期格式?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-06
      • 1970-01-01
      相关资源
      最近更新 更多