2009-06-30 6 views
5

Sto cercando di recuperare alcuni record dal database MSSQL utilizzando EntityObject con query EntitySQL. Il campo che sto usando per filtrare è un tipo di datetime. La query generata, proiettata senza millisecondi, su SQL Server non restituisce nulla. Quando aggiungo i millisecondi, ottengo risultati.SQL entità confronta data/ora senza millisecondi

Come posso utilizzare EntitySQL per ottenere risultati senza millisecondi?

grazie.

risposta

3

Non è elegante, ma questo ha funzionato per me:

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

Un modo per farlo è creare una vista dei dati, in cui la colonna datetime viene convertita in smalldatetime (che non ha millisecondi).

Quindi aggiungere la vista al modello di struttura dell'entità e leggere i dati tramite la vista.

Spero che questo aiuti

Shiraz

0

soluzione alternativa che ho trovato è il primo data recuperare negozio come .ToBinary() poi quando si filtrano solo fare nuove DateTime (binaryValue) e confrontare con quello.