2009-09-21 8 views
2

Je convertis certaines des requêtes que j'ai de CAML en SQL de recherche SQL et j'ai rencontré un problème en essayant de comparer mes champs de métadonnées Date à "Aujourd'hui".En comparant les champs de date à "Aujourd'hui" en utilisant SharePoint search SQL?

Plus précisément, j'ai la partie suivante d'une requête CAML qui utilise:

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

Lorsque vous tentez de convertir en recherche SharePoint SQL que je suivais le microsoft documentation; spécifiquement le DATEADD documentation. Je suis venu avec ceci:

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

Cependant, quand j'utilise cette requête que je reçois le message d'exception suivant:

nom ne peut pas commencer par le « = » caractère, valeur hexadécimale 0x3D. ligne 1, 296.

Comme une touche supplémentaire, si vous changez le '< =' opérateur à un opérateur '> =' il accepte la requête:

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

Est-ce un cas du lundi? Est-ce que Microsoft joue avec moi? Ou est-ce vraiment cassé ...

Répondre

2

C'est en cours. traité comme xml je pense..

< = DATEADD (JOUR, 0, GETGMTDATE())

Les règles de datatype precedence signifient que XML est supérieure à toutes les valeurs datetime, donc cela peut être la raison pour laquelle

Cependant, je suis désolé mais je ne suis pas familier avec Sharepoint ou CAML, donc je ne peux pas offrir de solution.

+0

Wow, je n'ai même pas pensé à ça ... mais tu as raison! Si j'utilise la valeur codée (> ou < au lieu de> ou <) alors cela fonctionne comme prévu! –

0

Would supprimer l'espace entre DATEADD et « (» aider - l'analyseur SQL peut être traiter différemment sans (calée contre elle

+0

Chris merci pour la réponse. Malheureusement, il ne semble pas se soucier des espaces. Je reçois la même erreur bizarre, peu importe combien d'espace blanc est là. –

Questions connexes