从C#中的SQLServer查询日期?

时间:2012-02-22 21:41:05

标签: c# visual-studio-2010 sql-server-2008

我正在构建一个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();
            }

当然,“之间”和“和”不起作用,这就是我需要填写的内容。我在网上搜索了一会儿无济于事。有什么帮助吗?

1 个答案:

答案 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点)。生日将不包括在此范围内,因为它在“现在”之前被考虑。