我正在构建一个Web应用程序,它将显示存储在SQL Server 2008数据库中的人员列表的即将到来的生日。我无法弄清楚如何在今天的30天内查询数据库中的所有记录。
这是我到目前为止所拥有的:
using (HumanResourcesDB db = newH umanResourcesDB(ConfigurationManager.ConnectionStrings["HumanResourcesDB"].ConnectionString))
{
DateTime todaysDate = DateTime.Now;
List<Employee> record =
(from tab in db.Employees
where tab.Birthday between DateTime.Now and todaysDate.AddDays(30)
select tab).ToList();
this.grdBirthdays.DataSource = record;
this.grdBirthdays.DataBind();
}
当然,“之间”和“和”不起作用,这就是我需要填写的内容。我在网上搜索了一会儿无济于事。有什么帮助吗?
答案 0 :(得分:4)
只需使用大于和小于
using (HumanResourcesDB db = newHumanResourcesDB(ConfigurationManager
.ConnectionStrings["HumanResourcesDB"].ConnectionString))
{
List<Employee> record = (from tab in db.Employees
where tab.Birthday >= DateTime.Today
&& tab.Birthday < DateTime.Today.AddDays(31)
select tab).ToList();
this.grdBirthdays.DataSource = record;
this.grdBirthdays.DataBind();
}
另外我应该提一下,我使用了DateTime.Today而不是DateTime.Now,因为今天表示当天的开始为00:00:00.000。如果某人的生日设置为今天的00:00:00.000并且你已经使用了DateTime.Now(我们假设它是早上8点)。生日将不包括在此范围内,因为它在“现在”之前被考虑。