【问题标题】:Sharepoint Date and Time Field limitationSharepoint 日期和时间字段限制
【发布时间】:2009-12-18 00:54:25
【问题描述】:

我在名为 EventDate 的 Sharepoint 列表中创建了一个日期和时间列。根据 Microsoft 文档,日期和时间列映射到 System.DateTime 类型。

现在,当我尝试将以下日期插入该列时,我看到一条错误消息:

日期:1800 年 1 月 1 日

错误信息: “无效的日期/时间值。 日期/时间字段包含无效数据。请检查值并重试。”

我也尝试使用 set DateTime.MinValue 并收到相同的错误消息。但是如果我插入一个更新的日期,比如 1900 年 1 月 1 日,它就可以正常工作。

Sharepoint 是否对日期和时间字段的最小值有限制?

【问题讨论】:

    标签: sharepoint


    【解决方案1】:

    我发现,如果您尝试手动(使用 Sharepoint 表单)在 Sharepoint 日期和时间字段中插入值 1/1/1800,您会收到以下错误:

    “您必须在 1900 年 1 月 1 日和 8900 年 12 月 31 日之间指定一个有效日期。”

    因此,Sharepoint 仅接受 1/1/1900 到 12/31/8900 之间的值。

    【讨论】:

    • 为什么要添加该日期?如果您确实需要 1900 年之前的日期,可以使用单行文本字段。
    • 非常好的答案。没有最后一行会更好。
    • 这是否意味着 SharePoint 将在 8900 年后停止工作?
    • @DenisMolodtsov 如果人类仍然使用 SharePoint,那么他们应该在 8899 年灭绝
    【解决方案2】:

    SharePoint 为何像现在这样限制日期时间数据类型的存储,没有明显的原因。

    在 SQL Server 中,smalldatetime 列允许的日期范围是 1/1/1900 - 6/6/2079,而 datetime 列的范围是 1/1/1753 - 12/31/9999

    所以从 1900 年 1 月 1 日到 8900 年 12 月 31 日之间没有范围,我一点也不知道为什么存在限制。

    更糟糕的是:SQL SErver 2008 有一个 smalldatetime2 和 datetime2 类型(实际上只是在名称中添加了一个 2 :/),它允许任何日期(1/1/0000 - 12/31/9999),但即使SQL 2008 上的 SharePoint 2010 具有相同的限制

    Kit:使用单行文本是一个非常糟糕的替代品,因为无法验证用户输入的值

    【讨论】:

      【解决方案3】:

      您可以尝试创建一个自定义字段来存储日期时间值。 见http://msdn.microsoft.com/en-us/library/gg132914.aspx

      【讨论】:

      • 你也可以有一个事件处理程序来验证字符串是一个有效的日期时间
      • @David 缺乏比较日期的能力本身就是一个重大损失。微软为什么不将字段类型映射回 SQL 的内置功能是没有意义的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-05
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 2020-12-16
      • 2021-08-15
      • 1970-01-01
      相关资源
      最近更新 更多