Искать только по дате

1

У меня есть таблица issutime в моей базе данных и она имеет следующий формат:

Изображение 174551

Когда я выполняю поиск по точной дате и времени, я получаю результаты. Но я хочу выполнять поиск только с датой. Например: 2014-02-28 должен вернуть все результаты с этой датой.

Это мой код:

var date = Convert.ToDateTime(search);
return View(db.newsletter.Where(x => x.issuetime == date).ToList());

Есть идеи?

Теги:
datetime
asp.net-mvc

3 ответа

2
Лучший ответ

Это похоже на подход Косара, но проще. Он также должен правильно обрабатывать события, которые происходят в последнюю секунду дня.

var date = Convert.ToDateTime(search).Date;
var nextDay = date.AddDays(1);
return View(db.newsletter
    .Where(x => x.issuetime >= date && x.issuetime < nextDay)
    .ToList());

Подход Майкла Данлапа работал бы в LINQ-to-SQL, но LINQ to Entities, похоже, не справился с этим. Entity Framework имеет TruncateTime (см. Здесь, но EntityFunctions, похоже, устарел, поэтому я не думаю, что я бы посоветовал использовать его.

  • 0
    Потрясающие! Благодарю.
1

Когда вы выполняете поиск только с помощью даты, она изменяет отметку времени для даты на 00: 00: 00: 000. например, для 2014-02-28, он ищет 2014-02-28 00: 00: 00: 000, однако то, что вы ищете, - это все записи с равным выпуском, больше, чем 2014-02-28 00:00:00: 000 и менее 2014-02-29 00: 00: 00: 000. Вы можете попробовать что-то подобное, если решение Майкла не работает для вас.

var date1=DateTime.Parse(date + " " + "00:00:00 AM")
var date2=DateTime.Parse(date + " " + "11:59:59 PM")
return View(db.newsletter.Where(x => x.issuetime>= date1 && x.issuetime<= date2).ToList());
1

Используйте атрибут Date для класса DateTime.

var date = Convert.ToDateTime(search);
return View(db.newsletter.Where(x => x.issuetime.Date == date.Date).ToList());
  • 0
    Не принимает. Дата после выдачи.
  • 1
    @ ŞenolŞahin: Это будет работать на LINQ to SQL. Возможно, вам следует включить информацию о вашем поставщике LINQ (Entity Framework?) В исходный вопрос.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню