2009-06-30 14 views
5

Estoy intentando buscar algunos registros de MSSQL DB utilizando EntityObject con la consulta EntitySQL. El campo que estoy usando para filtrar es el tipo de fecha y hora. La consulta generada proyectada sin milisegundos, al servidor SQL no devuelve nada. Cuando estoy agregando los milisegundos, obtengo resultados.Entity SQL compare datetime without miliseconds

¿Cómo puedo usar EntitySQL para obtener el resultado sin los milisegundos?

gracias.

Respuesta

3

No es elegante, pero esto funcionó para mí:

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

Una forma de hacerlo es crear una vista de sus datos, donde su columna de fecha y hora se convierte en smalldatetime (que no tiene milisegundos).

A continuación, agregue la vista a su modelo de entidad de marco y lea los datos a través de la vista.

Esperanza esto ayuda

Shiraz

0

Solución he encontrado es en la fecha inicial tienda de alcanzar un precio .ToBinary(), entonces cuando filtra acaba de hacer nueva DateTime (binaryValue) y comparar con eso.