【问题标题】:Linq date and datetime comparerLinq 日期和日期时间比较器
【发布时间】:2012-02-07 02:32:34
【问题描述】:

我需要获取当天的查询,问题是当我尝试将来自 DB 的值(即 DateTime)与 DateTime.Today.Date 值进行比较时出现错误.

我想要达到的目的是获取当天的记录。

List<Client> _cliente = from c in db.Cliente
                        join v in db.Vendedor
                        on c.IDVendedor equals v.IDVendedor
                        where v.Fecha.Date.Equals(DateTime.Today.Date)

这就是我得到的:“LINQ to Entities 不支持指定的类型成员“日期”。仅支持初始化程序、实体成员和实体导航属性。'

【问题讨论】:

    标签: linq datetime date linq-to-entities


    【解决方案1】:

    也许你可以这样做:

    var today = DateTime.Today;
    var tomorrow = today.AddDays(1);
    
    List<Client> _cliente = from c in db.Cliente
                        join v in db.Vendedor
                        on c.IDVendedor equals v.IDVendedor
                        where v.Fecha >= today && v.Fecha < tomorrow
    

    【讨论】:

    • 这是基于 DateTime.Today 将返回时间设置为 00:00:00 的日期。
    【解决方案2】:

    可以使用C#标准库——有时间间隔类型(一次减去一次,然后得到天数的绝对值,像这样:

    List<Client> _cliente = from c in db.Cliente
                        join v in db.Vendedor
                        on c.IDVendedor equals v.IDVendedor
                        where Math.Abs((v.Fecha.Date - DateTime.Today).Days) <= 1
    

    【讨论】:

    • 我认为应该是DateTime.Today,如上。
    猜你喜欢
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-16
    • 2012-04-20
    相关资源
    最近更新 更多