Entity SQL сравнивает дату и время без миллисекунд - PullRequest
5 голосов
/ 30 июня 2009

Я пытаюсь получить некоторые записи из базы данных MSSQL, используя EntityObject с запросом EntitySQL. Поле, которое я использую для фильтрации, является типом даты и времени. Сгенерированный запрос, проецируемый без миллисекунды, на SQL Server ничего не возвращает. Когда я добавляю миллисекунды, я получаю результаты.

Как я могу использовать EntitySQL для получения результата без миллисекунд?

спасибо.

Ответы [ 3 ]

3 голосов
/ 31 августа 2010

Это не элегантно, но у меня это сработало:

foos.SingleOrDefault(f => f.EntryDate.Year == bar.EntryDate.Year &&
                          f.EntryDate.Month == bar.EntryDate.Month &&
                          f.EntryDate.Day == bar.EntryDate.Day &&
                          f.EntryDate.Hour == bar.EntryDate.Hour &&
                          f.EntryDate.Minute == bar.EntryDate.Minute &&
                          f.EntryDate.Second == bar.EntryDate.Second);
1 голос
/ 02 июля 2009

Один из способов сделать это - создать представление ваших данных, где ваш столбец datetime преобразуется в smalldatetime (без миллисекунд).

Затем добавьте представление в модель вашей сущности и прочитайте данные через представление.

Надеюсь, это поможет

Шираз

0 голосов
/ 13 августа 2009

Обходной путь, который я обнаружил, относится к начальной дате сохранения выборки как .ToBinary (), а затем, когда вы фильтруете, просто создаете новый DateTime (binaryValue) и сравниваете его с этим.

...