使用SQL Server Date数据类型和C#DateTime来选择记录

时间:2013-11-11 16:36:03

标签: sql sql-server linq

我有ActionResult我希望根据SQL Server中的日期列选择记录。此日期位于Date类型的列中。我无法直接比较日期,因为C#DateTime包含时间组件而Date数据类型不包含。有没有一个很好的方法来做到这一点?

public ActionResult AbsencesByDate(DateTime date)
{
        var absences = from attendance in db.Attendances
                          where attendance.Date == date
                          select new
                          {
                              returnedPersonID = attendance.PersonID,
                             FullName = attendance.Person.FName + " " + attendance.Person.LName,
                          };
        return Json(absences, JsonRequestBehavior.AllowGet);
}

2 个答案:

答案 0 :(得分:2)

您可以从函数中的日期参数中删除时间部分。 像这样:

public ActionResult AbsencesByDate(DateTime date)
{
    date = date.Date;
    var absences = from attendance in db.Attendances
                      where attendance.Date == date
                      select new
                      {
                          returnedPersonID = attendance.PersonID,
                         FullName = attendance.Person.FName + " " + attendance.Person.LName,
                      };
    return Json(absences, JsonRequestBehavior.AllowGet);
}

答案 1 :(得分:1)

尝试使用:

其中attendance.Date == date.Date