代码之家  ›  专栏  ›  技术社区  ›  Andy Evans

在LINQ查询中返回没有时间的日期

  •  7
  • Andy Evans  · 技术社区  · 15 年前

    我正在写一个查询,我想计算一下我们的呼叫中心按日期联系的次数。看起来很简单,但是由于contact date字段是datetime字段,所以当我按contact date(time)分组时,每个contact date实例的计数都是“1”。所以,我想只按日期分组,不按时间分组。下面是我用来查询数据库的表达式:

    MyDataContext db = new MyDataContext();
    var items = (from h in db.ContactHistories
                 group h by h.contact_dt into g
                 orderby g.Key
                 select new
                 {
                     contact_dt = g.Key,
                     item_count = g.Count()
                 }).Take(50);
    

         h.contact_dt.ToShortDateString()
    

    但这不起作用,因为SQL确实知道ToShortDateString()。任何想法都非常感谢。

    谢谢!

    Take(50)限制了我得到的记录的数量,直到我添加了日期选择器和where子句,这样我就不会得到所有的40万条记录。;)

    2 回复  |  直到 15 年前
        1
  •  14
  •   Jon Skeet    15 年前

    Date

    group h by h.contact_dt.Date into g
    

    LINQ to SQL知道这一点-看到了吗 this handy page “理解”的方法和属性。

    var items = (from h in db.ContactHistories
                 select h.Date into date
                 group date by date into g
                 orderby g.Key
                 select new
                 {
                     contact_dt = g.Key,
                     item_count = g.Count()
                 }).Take(50);
    

    我不知道是否有效,但值得一试。。。

        2
  •  4
  •   James Curran    15 年前

    使用 .Date DateTime对象的属性。