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)
    ,您不必浪费时间,只需确保您不进行精确匹配即可。 尝试以下方法:
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();
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...