2016-11-28 4 views
0

Мы хотим задать критерии фильтра для получения всех данных дня или сегодня. Мы пытаемся использовать код, как показано ниже, но мы получаем ошибку. Пожалуйста, предоставьте полное решение.Как найти все данные дня фильтром Odata WCF

$filter=ServiceCallID eq 425977 and DateCreated eq '11/28/2016 12:45:25 PM' 

Ошибка «Оператор„эк“несовместима с типами операндов„System.DateTime“и„System.String“в положении 40.» И мы используем версию odata версии v2.

+0

Какая ошибка вы получаете? И какую версию OData вы используете? – smoksnes

+0

Оператор 'eq' несовместим с типами операндов 'System.DateTime' и 'System.String' в позиции 40. И мы используем версию odata версии v2. – user4667380

ответ

0

Я считаю, что вам необходимо определить параметр как DateTime. Вы получаете ошибку, потому что .NET интерпретирует ваш параметр как string, но тип DateTime.

От odata.org:

datetime'yyyy мм ДДTчч: мм [: сс [.fffffff]]»Примечание: Пробелы не допускаются между DateTime и цитируемой части. Дата и время нечувствителен к регистру

Попробуйте это:

$filter=ServiceCallID eq 425977 and DateCreated eq datetime'2016-11-18T12:45:25' 

Обратите внимание, что я также изменил формат YYYY-MM-dd. Вы также можете изменить eq на номер gt или lt, в зависимости от вашего определения сегодня.

Таким образом, ваше окончательное решение может быть greater or equal to 2016-11-18. И less than 2016-11-19. Он должен предоставить все предметы в течение 2016-11-18 годов.

$filter=ServiceCallID eq 425977 and DateCreated ge datetime'2016-11-18' and DateCreated lt datetime'2016-11-19' 

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

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