2015-08-07 5 views
2

Я хочу получить элементы в пределах диапазона от SPList. Дата начала будет сегодня, а дата окончания будет на следующий день после 30 дней с сегодняшнего дня. Вот мой запрос CAML.CAML Данные фильтрации запросов в диапазоне дат

query.Query = string.Concat(@ 
    "<Where> 
     <And> 
      <Geq> 
      <FieldRef Name='EventDate' /> 
      <Value IncludeTimeValue='False' Type='DateTime'><Today /></Value> 
      </Geq> 
      <Leq> 
      <FieldRef Name='EventDate' /> 
      <Value IncludeTimeValue='False' Type='DateTime'><Today offset='30'/></Value> 
      </Leq> 
     </And> 
    </Where> 
    <OrderBy> 
     <FieldRef Name='EventDate' Ascending='True' /> 
    </OrderBy>"); 
SPListItemCollection items = list.GetItems(query); 

Но это вернет только предметы, имеющие сегодняшнюю дату.

ответ

1

Попробуйте это, используя OffsetDays или Offset не offset в значении <Today/> ...

query.Query = string.Concat(@ 
    "<Where> 
     <And> 
      <Geq> 
      <FieldRef Name='EventDate' /> 
      <Value IncludeTimeValue='False' Type='DateTime'><Today /></Value> 
      </Geq> 
      <Leq> 
      <FieldRef Name='EventDate' /> 
      <Value IncludeTimeValue='False' Type='DateTime'><Today OffsetDays='30'/></Value> 
      </Leq> 
     </And> 
    </Where> 
    <OrderBy> 
     <FieldRef Name='EventDate' Ascending='True' /> 
    </OrderBy>"); 

What is the difference between CAML Offset and OffsetDays?

В качестве альтернативы вы можете создать DateTime объекты и использовать SPUtility.CreateISO8601DateTimeFromSystemDateTime method

 Смежные вопросы

  • Нет связанных вопросов^_^