Страницы

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

четверг, 2 апреля 2020 г.

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

#c_sharp #база_данных #entity_framework

                    
Здравствуйте. В моём приложении есть база данных. Есть таблица с колонкой типа 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, доли секунды
у даты пропали, всё как нужно, но при создании записи в базе данных, секунды у этих
дат почему-то всегда равны нулю, что не совсем нравится это всё.
    


Ответы

Ответ 1



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

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

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