2012-01-10 72 views
2

我需要得到當天的查詢,問題是當我嘗試比較來自DB(這是DateTime)和DateTime.Today.Date的值時出現錯誤值。Linq日期和日期時間比較器

我想要實現的是獲取當天的寄存器。

List<Client> _cliente = from c in db.Cliente 
         join v in db.Vendedor 
         on c.IDVendedor equals v.IDVendedor 
         where v.Fecha.Date.Equals(DateTime.Today.Date) 

這就是我所得到的:'LINQ to Entities不支持指定的類型成員'Date'。只支持初始化器,實體成員和實體導航屬性。'

回答

9

也許你可以做這樣的事情:

var today = DateTime.Today; 
var tomorrow = today.AddDays(1); 

List<Client> _cliente = from c in db.Cliente 
        join v in db.Vendedor 
        on c.IDVendedor equals v.IDVendedor 
        where v.Fecha >= today && v.Fecha < tomorrow 
+1

這是基於這樣的事實,DateTime.Today將返回日期設置爲00:00:00的時間 – ivowiblo 2012-01-10 17:15:37

+0

好主意,它像使用之間,謝謝 – Luis 2012-01-10 18:14:10

+0

+ 1日期範圍的漂亮和整潔的方式比較 – 2012-05-10 23:36:41

0

可以使用C#標準庫 - 有一個時間間隔類型(從另一個減去一個時間,然後得到的數字的絕對值天,像這樣:

List<Client> _cliente = from c in db.Cliente 
        join v in db.Vendedor 
        on c.IDVendedor equals v.IDVendedor 
        where Math.Abs((v.Fecha.Date - DateTime.Today).Days) <= 1 
+0

沒有工作,得到了相同的錯誤 – Luis 2012-01-10 18:14:27

+0

我相信它應該是'DateTime.Today'如上。 – Hogan 2012-01-10 18:43:37