我有一個帶有datetime2字段的表,我需要從當前日期獲取所有行。而是奇怪的(在我看來,但我敢肯定有它的正當理由),如果我這樣做:Linq to SQL DateTime2查詢
MyTable.Where(t => t.Date == DateTime.Today).ToList()
它沒有返回即使有與今天的日期entires。
我在這裏錯過了什麼?我認爲datetime2允許你這樣查詢,而不必使用大於和小於指定時間範圍?
編輯
我使用Linq中的DATETIME2表示的.Date部分SQL嘗試:
MyTable.Where(t => t.Date.Date == DateTime.Today).ToList()
但我仍然得到什麼。然而在我的數據庫中有一些值爲2011-08-05 00:00:00.0000000
的行,這在今天顯而易見。
再次編輯 我已經跑了查詢:
List<string> dates = MyTable.Select(t => t.Date.Date.ToString()).ToList();
和我得到的結果一樣2011-08-05
,使部分明顯的作品。
然而,當我運行
DateTime.Today.Date.ToString()
我得到08/05/2011 00:00:00
。這個時間段的增加是否會導致這個問題?我將如何刪除這個?
編輯3
得到它使用代碼工作:
MyTable.Where(t => t.Date.Date.ToString() == DateTime.Today.Date.ToString("yyyy-dd-MM")).ToList();
這似乎哈克雖然(轉換爲字符串比較之前),肯定必須有一個更清潔的方式?
是否有與日期一起存儲的時間? – 2011-05-08 14:57:28
@Conrad是有一段時間存儲,但我只想今天的一切。 – AndrewC 2011-05-08 15:01:10
您需要查看L2S生成的原始SQL。 – 2011-05-08 15:18:18