Сравнивать поля даты с «Сегодня» с помощью поиска SharePoint SQL? - PullRequest
2 голосов
/ 22 сентября 2009

Я преобразовываю некоторые из моих запросов из CAML в SQL поиска SharePoint и столкнулся с проблемой при попытке сравнить мои поля метаданных Date с «Сегодня».

В частности, у меня есть следующая часть CAML-запроса, который использует:

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

При попытке преобразовать это в SQL-запрос поиска SharePoint я следовал документации Microsoft ; в частности документ DATEADD . Я придумал это:

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

Однако, когда я использую этот запрос, я получаю следующее сообщение об исключении:

Имя не может начинаться с '=' символ, шестнадцатеричное значение 0x3D. Строка 1, позиция 296.

В качестве дополнительного поворота, если вы измените оператор '<=' на оператор '> =', он примет запрос:

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

Это случай понедельника? Microsoft связывается со мной? Или это действительно сломано ...

Ответы [ 2 ]

2 голосов
/ 11 октября 2009

Это рассматривается как xml, я подозреваю:

<</strong> = DATEADD (ДЕНЬ, 0, GETGMTDATE ()).

Правила приоритет типа данных означают, что xml выше, чем все значения даты и времени, поэтому может быть поэтому.

Однако, извините, но я не знаком ни с Sharepoint, ни с CAML, поэтому не могу предложить исправления.

0 голосов
/ 22 сентября 2009

Было бы удаление пробела между DATEADD и справкой '('?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...