使用lambda表达式按日期筛选

本文关键字:日期 筛选 表达式 lambda 使用 | 更新日期: 2023-09-27 18:18:27

我正在建立一个ASP。. NET MVC网站,我被困在一个可能简单的问题。我正在尝试使用lambda表达式按日期过滤查询。我尝试过的其他过滤方式都很成功。这是我想要完成的。数据存储在SQL Server 2008 R2数据库中,数据类型为date。我不确定这是否是结果不显示的原因。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Project.Models;
public class CreateController : Controller
{
    // GET: Create
    public ActionResult Create()
    {
        var dt = DateTime.Now.AddDays(-10);           
        var db = new Models.Entities();
        var apps = db.tableName.Where(x => x.col1 == dt);                                        
        return View(apps.OrderBy(x => x.col2));
    }
}

And my view

@model IEnumerable<Project.Models.table1>
@{
    ViewBag.Title = "Project";
}
    @foreach (var apps in Model)
    {
        <table>
            <tr>
                <th>col z</th>
                <th>col x</th>
                <th>col y</th>
                <th>col w</th>
            </tr>
            <tr>
                <td>@apps.col1</td>
                <td>@apps.col2</td>
                <td>@apps.col3</td>
                <td>@apps.col4</td>    
            </tr> 
        </table>
    }

使用lambda表达式按日期筛选

//per lordkain:
var dt = DateTime.Now.Date.AddDays(-10); 
//per Yuliam Chandra:
db.tableName.Where(x => x.col1 >= dt);

在您的代码中,c#数据类型是DateTime,而数据库中的数据类型是Date。

你可能想改变你的代码在你的创建函数

var dt = DateTime.Today.AddDays(-10); 

现在的代码只有日期,没有时间!