據我得爲這樣:LINQ的選擇,其中日期是昨天
DateTime yesterday = DateTime.Today.AddDays(-1);
YesterdaysRegistrations = db.tblForumAuthors.Where(c => c.Join_date == yesterday).Count();
肯定有記載,有參加昨天的日期,但它返回0所有的時間!任何人都可以告訴我,如果我正確地做到這一點?
據我得爲這樣:LINQ的選擇,其中日期是昨天
DateTime yesterday = DateTime.Today.AddDays(-1);
YesterdaysRegistrations = db.tblForumAuthors.Where(c => c.Join_date == yesterday).Count();
肯定有記載,有參加昨天的日期,但它返回0所有的時間!任何人都可以告訴我,如果我正確地做到這一點?
AddDays
保留小時/分鐘/秒組件。你要麼必須使用(如果c.Join_date只是日期部分):
DateTime yesterday = DateTime.Today.AddDays(-1).Date;
否則,就可以比較範圍:
DateTime yesterday = DateTime.Today.AddDays(-1).Date;
DateTime yesterdayEnd = DateTime.Today.Date.AddSeconds(-1);
db.tblForumAuthors.Where(c => c.Join_date >= yesterday && c.Join_date < yesterdayEnd)
如果有人在午夜前加入半秒,該怎麼辦?你不需要減去第二個。 – 2011-04-13 20:35:36
謝謝,但沒有運氣,在數據庫領域有時間以及我認爲是停止工作? – 2011-04-13 20:35:47
不正確。如果數據庫只保存日期組件,則兩個對象的小時/分鐘/秒將爲0,其值爲真。 – Femaref 2011-04-13 20:36:34
你不必脫光的時候,你只需要確保你沒有完全匹配。
試試這個:
DateTime today = DateTime.Today; // read once, avoid "odd" errors once in a blue moon
DateTime yesterday = today.AddDays(-1);
YesterdaysRegistrations = db.tblForumAuthors.Where(
c => c.Join_date >= yesterday
&& c.Join_date < today).Count();
一起存儲在加入時或剛日期那些'Join_date'領域? – 2011-04-13 20:32:51
@Lasse,他們有時間,但我不知道如何去掉linq語句 – 2011-04-13 20:33:26
你可以只用'c.Join_date.Date'去掉時間和比較,還是我錯過了什麼? – R0MANARMY 2011-04-13 20:43:26