Страницы

Поиск по вопросам

воскресенье, 9 июня 2019 г.

Поиск даты в базе данных без учёта доли секунд

Здравствуйте. В моём приложении есть база данных. Есть таблица с колонкой типа DateTime. В code-behind при создании объекта есть свойство Date типа DateTime. Данное свойство я инициализирую таким образом: Date = DateTime.Now. Для работы с базой данных в code-behind я использую технологию Entity Framework, подход к проектированию приложения Model First.
Далее, как только я сохраняю информацию в базу данных, у меня в БД у этой колонки (Date) записывается дата, и у этой даты есть доли секунды, например: 2018-03-18 15:43:00,667.
Как сделать так, чтобы поиск даты был без учёта доли секунды, если это возможно, конечно? Например, есть две даты: 2018-03-18 15:43:00,667 и 2018-03-18 15:43:00,122. В приложении есть фильтр, я указываю значение Вс, 18 мар 2018 15:43:00 GMT и мне нужно, чтобы вот эти две даты выводились в качестве результата поиска.
В базе данных я пробовал у колонки поменять тип данных на smalldatetime, доли секунды у даты пропали, всё как нужно, но при создании записи в базе данных, секунды у этих дат почему-то всегда равны нулю, что не совсем нравится это всё.


Ответ

"Проверка на равенство без долей секунд" — это проверка на попадание в диапазон значений.
DateTime dateFrom = GetRoundDateFromInput(); DateTime dateTo = dateFrom.AddSeconds(1); db.Foos.Where(f => dateFrom <= f.Date && f.Date < dateTo);

Комментариев нет:

Отправить комментарий