Próbuję utworzyć kwerendę CAML, która porównuje dwa obiekty DateTime, ale I nie może uzyskać go do pracy przy użyciu porównania Eq. Z moich testów mogę uzyskać Gt, Lt, Geq, Leq do pracy z porównaniami DateTime, ale Eq w ogóle nie działa.Kwerenda CAML Porównywanie DateTime z Eq
Pierwszym obiektem jest pole Data i godzina (utworzone przez program InfoPath i zapisane w polu Data i godzina na liście programu SharePoint), bieżącym przykładem jest "3/14/2012 12:00 AM". Próbowałem użyć wartości [Dzisiaj /], używając zakodowanej wartości w formacie ISO 2012-03-14T00: 00: 00Z, ale nic nie zadziałało do tej pory. Eksperymentowałem z IncludeTimeValue, ustawiając go na true/false, bez poprawy.
Mój obecny zapytanie wygląda trochę tak,
<Query>
<Where>
<Eq>
<FieldRef Name="SomeDateTimeField" IncludeTimeValue="TRUE" />
<Value Type="DateTime" IncludeTimeValue="TRUE">2012-03-14T00:00:00Z</Value>
</Eq>
</Where>
</Query>
ta zwraca nic, chociaż mam element z tego czasu data w liście. Jakieś pomysły?
Myślę, że w międzyczasie sprawdzę tylko, czy jest w zakresie Gt/Lt, aby określić, czy jest to konkretna data, zamiast używać Eq, aby to zrobić. Rodzaj sprawia, że brzydsza kwerenda, ale działa do tej pory. – ferr
Musisz usunąć cudzysłowy wokół wartości. – ktharsis
Przepraszamy, że był to literówka w poście, rzeczywisty kod nie odzwierciedla tego. – ferr