使用SharePoint搜索SQL将日期字段与“今天”进行比较?

时间:2009-09-21 20:03:02

标签: sql sharepoint search

我正在将我从CAML的一些查询转换为SharePoint搜索SQL,并在尝试将我的日期元数据字段与“今天”进行比较时遇到问题。

具体来说,我有以下部分的CAML查询使用:

<Leq><FieldRef Name="Article_x0020_Publish_x0020_Date"/><Value Type="DateTime"><Today /></Value></Leq>

尝试将其转换为SharePoint搜索SQL时,我遵循microsoft documentation;特别是DATEADD documentation。我想出了这个:

SELECT Title, ArticlePublishDate FROM SCOPE() WHERE "SCOPE" = 'Articles' AND ArticlePublishDate <=DATEADD (DAY, 0, GETGMTDATE())

但是,当我使用此查询时,我收到以下异常消息:

  

名称不能以'='开头   字符,十六进制值0x3D。   第1行,第296位。

另外,如果您将'&lt; ='运算符更改为'&gt; ='运算符,则它接受查询:

SELECT Title, ArticlePublishDate FROM SCOPE() WHERE "SCOPE" = 'Articles' AND ArticlePublishDate >=DATEADD (DAY, 0, GETGMTDATE())

这是星期一的情况吗?微软搞砸了我吗?或者这真的破了......

2 个答案:

答案 0 :(得分:2)

这被视为xml我怀疑:

&lt; = DATEADD(DAY,0,GETGMTDATE())。

datatype precedence的规则意味着xml高于所有日期时间值,所以这可能是原因。

但是,我很抱歉,但我不熟悉Sharepoint或CAML,因此无法提供修复。

答案 1 :(得分:0)

删除DATEADD和'('help?)之间的空间 - SQL解析器可能会在没有它的情况下对它进行不同的处理(楔入它。