Получение более поздней даты из базы данных без учета отфильтрованной даты - PullRequest
0 голосов
/ 27 октября 2019

Я пытаюсь получить "большую" / более позднюю дату из базы данных с запросом ниже

Контроллер

string str = "2019-10-27T20:44:55.323";
DateTime Date = Convert.ToDateTime(str);

var List = (from a in dbcontext.system_notification where a.notification_date  > Date select a).ToList();

Вывод

Я все еще получил результат от дата"2019-10-27T20: 44: 55.323". Я ожидаю получить только Более позднюю дату от даты, указанной с тех пор, как я использую оператор ">".

Спасибо !!

Ответы [ 2 ]

0 голосов
/ 29 октября 2019

Вы можете попробовать это, как показано ниже:

Вы должны избегать использования зарезервированных слов или ключевых слов в качестве имени переменной.

string str = "2019-10-27T20:44:55.323";
DateTime dt = Convert.ToDateTime(str);

var lst = dbcontext.system_notification.where(x => x.notification_date > dt).ToList();
0 голосов
/ 27 октября 2019

Структура DateTime представляет даты в виде 64-битного числа, которое измеряет количество «тиков» с определенной даты начала. Десять миллионов тиков равны одной секунде.

См .: https://blogs.msdn.microsoft.com/ericlippert/2010/04/08/precision-and-accuracy-of-datetime/

Теперь сравните это с типами данных MS SQL :

точность времени и даты: 0,00333 с [ПО УМОЛЧАНИЮ В EF]

точность даты-времени2: 100 нс

Поэтому, скорее всего, значение в вашей базе данных фактически, визуально, больше или округлено.

Вы можете проверить это, проверив дельту:

foreach (var dt in List)
{
   var delta = Date - dt;
   // check the value.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...