2015-11-16 2 views
0

У меня есть SQL-запрос, как это:Как сравнить DateTime в Linq

SELECT date FROM cases 
WHERE date BETWEEN '11/01/2015' AND '11/15/2015' 

Я хочу сделать то же самое в MVC контроллер с помощью Linq. Так что у меня есть это:

DateTime today = DateTime.Today; 
var case = _dataContext.tb_cases; 
var result=(from c in case 
      select new 
      { 
      date=c.date 
      ... 
      }).Where(p=>p.date >= new DateTime(2015,11,01)&& p.date < today).ToList(); 
return Json(result, JsonRequestBehavior.AllowGet); 

Но почему-то я не мог получить какой-либо результат при сравнении date между new DateTime(2015,11,01) и today, и у меня есть данные, возвращаемых при использовании SQL запроса в моей базе данных. Я также хотел бы настроить формат даты так же, как эти два в SQL-запросе.

Любой может помочь мне решить эту проблему?

спасибо!

Кевин

+0

Вы говорите, что не получили никакого результата или просто не все ожидаемые результаты –

+0

Я считаю, что лучший способ отладки таких вопросов - запустить sql-профайлер и захватить SQL-запрос, отправляемый на SQL-сервер. Затем сравните его с вашим и выясните, почему результаты разные. Не самый быстрый способ, но каждый раз работал для меня. –

+0

Кроме того, я на 90% уверен, что если вы попытаетесь найти минимальную программу, которая воспроизводит ваш результат, вы обнаружите свою проблему до того, как закончите. http://stackoverflow.com/help/mcve –

ответ

0

Try:

Where(p=> (DateTime.Compare(p.date,DateTime.Parse("2015/11/01").Date))<0 && (DateTime.Compare(p.date,DateTime.Today)<0)).ToList(); 

Чтобы узнать, как использовать DateTime.Parse проверить here.

+0

Кажется, что Linq или C# не нравится, чтобы код был написан таким образом ... В нем говорится: «Лучшее перегруженное соответствие метода для« System.DateTime » .Compare (System.DateTime, System.DateTime) 'имеет некоторые недопустимые аргументы ", когда я нажимаю над' DateTime.Parse ("2015/11/01"). Date' –

+0

Возможно, вам нужно проверить сведения о том, как использовать DateTime. Разбор. Проверьте ссылку, которую я дал "здесь" – Hadee

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