C#︰ 获取数据库记录的日期范围内

标签: Linq C#
发布时间: 2017/2/28 21:49:49
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我问了一个问题,昨天在这里我必须返回给定的日期范围内的数据库记录。 在昨天的问题我指出,DB 表内日期有 'nvarchar' 型后联系数据库管理员。

现在已更改类型,键入日期时间

因此,我正在为一个 Linq 表达式来返回给定的日期范围内的数据库记录。 前一个问题链接︰返回的日期范围内的 DB 结果

代码︰

public ActionResult timePeriod(string time)
{
    //Start: month, day, year End: month, day, year --> Numeric values
    string[] times = time.Split(',');                             
    string start = times[0] + " " + times[1] + " " + times[2];
    string end = times[3] + " " + times[4] + " " + times[5];

    var sDate = DateTime.Parse(start);
    var eDate = DateTime.Parse(end);

    //viewModel.Tasks = db.Tasks.   //Linq expression to return values withing range.
    viewModel.EngineerSkills = db.EngineerSkills.ToList();
    viewModel.Categories = db.TaskCategories.ToList();

    gatherInfo(viewModel);
    gatherXML();
    timeRestrictions(viewModel);
    gatherMapPositions(viewModel);

    return View("Index", viewModel);
}

解决方法 1:

//previous code
.....
var viewModelDates = viewModel.Where(p=>p.StartTime >=sDate && p.EndTime<=eDate);
return View("Index", viewModelDates.ToList());

你应该检查在哪里 StartTime>=sDate and p.EndTime<=endTime 。这应返回正确的值。我希望你有有效 sDateeDate

官方微信
官方QQ群
31647020