将DBfield中的日期与当前日期进行比较

时间:2017-03-15 13:59:06

标签: c# sql asp.net-mvc entity-framework

我是.NET世界的新手,所以原谅我的新手问题。

我正在构建一个从数据库中获取数据的webapp。我正在使用Entity Framework,数据库第一种方法。我想比较数据库中的日期字段和当前日期。如果剩下20天或更短的天数直到当前日期,我希望它显示在我的视图中。 如果还剩下20天,则不应该在我看来显示。 现在我正在展示一切。

控制器:

        [StandardUserAuthorize]
    public ActionResult Index()
    {
        var model = new HomeVM
        {
            Offerter = db.AH_AVTAL_HUVUD.ToList(),
            Kallelser = db.AS_AVTAL_SCHEMA.ToList()
            //This is where the datefield is, in Kallelser.


        };
        return View(model);
    }

视图模型:

    public class HomeVM
{
    public IEnumerable<AH_AVTAL_HUVUD> Offerter { get; set; }
    public IEnumerable<AS_AVTAL_SCHEMA> Kallelser { get; set; }
}

查看:

 @foreach (var item in Model.Kallelser)
                    {
                        <tr>
                            <td>
                                @Html.DisplayFor(modelItem => item.AS_SC_DAT)
                            </td>
                            <td>
                                @Html.DisplayFor(modelItem => item.AS_SC_VECKA)
                            </td>
                            <td>
                                @Html.DisplayFor(modelItem => item.AS_SC_OP_TXT)
                            </td>
                        </tr>
                    }

我怎么能做这种逻辑?在哪里?我认为它应该在控制器中完成。

最诚挚的问候。

2 个答案:

答案 0 :(得分:1)

我希望我完全理解你

//this is the after 20 days
 var ComparingDay = DateTime.Now.AddDays(20);

//this linq expression to get days between today and the comparing day
var ListOfNextDays = YouContextClass.YourDBSet.Where(D => D.Date > DateTime.Now && D.Date < ComparingDay).ToList();

现在你有可以传递给你的日子清单

如果您希望其他日子符合您的条件,您可以使用except运算符

答案 1 :(得分:0)

我假设你在应用程序的某个地方写了一个sql。只需在其中添加一个where子句,即可只检索要显示的内容。

SELECT t.*
FROM   Table t
WHERE  DATEDIFF(DAY, t.Date, GETDATE()) <= 20