2009-06-30 1 views
5

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

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

спасибо.

ответ

3

Это не элегантный, но это работает для меня:

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

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

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

Надеется, что это помогает

Шираза

0

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

 Смежные вопросы

  • Нет связанных вопросов^_^