在SharePoint 2007中使用[Today]和字符串字段进行过滤

本文关键字:字符串 字段 过滤 Today 2007 SharePoint | 更新日期: 2023-09-27 17:50:54

我有一个c#应用程序,每周将数据从CSV平面文件插入到SharePoint列表中,其中有超过30000条记录,并且还在不断增长。

Management希望在视图中只看到90天以下的项目,但是日期字段被插入为单行文本(否则它根本不会上传)。现在我已经尝试使用=TEXT(DateField,"yyyymmdd")创建一个新的计算列,并将该字段设置为DateTime类型。然后,我尝试使用"NewColumn大于[Today]-90"过滤视图中的新列,但返回零结果。

是否有一种方法将我的文本字段转换成一个日期字段,可以用来过滤像这样,或者一种方法将平面文件字符串转换成DateTime值之前,我甚至上传到SharePoint?

在SharePoint 2007中使用[Today]和字符串字段进行过滤

我终于找到了答案。

SharePoint不允许我对以这种方式转换的字段进行过滤,所以我必须以正确的格式上传数据。CSV feed给了我一个"yyyyMMdd"格式的字符串,但是SharePoint需要在格式块之间添加连字符,比如:"yyyy-MM-dd"。批处理元素中的FieldRef节点也需要看起来像这样:

"<Field Name='Date_x0020_Field' Type='DateTime' Format='DateOnly'>" + date + "</Field>"

我最终转换为DateTime对象,然后返回到字符串,因为我已经在DateTime格式中集成了一些其他数据,但是您可以轻松地手动插入连字符。

您可以使用Convert.ToDateTime(stringDate);将字符串转换为DateTime,您可以使用dateTimeObject.ToString("yyyy-MM-dd");将其转换为正确的格式