【问题标题】:MIN and MAX for a year from datetime using linq to sql使用 linq 到 sql 从日期时间开始一年的 MIN 和 MAX
【发布时间】:2011-03-11 14:03:21
【问题描述】:

如何在 C# 中使用 Linq to SQL 执行这个 MS SQL 查询

SELECT DATEPART(yy, MAX (articleDate)) AS max_year,
DATEPART(yy, MIN (articleDate)) AS min_year
FROM News;

谢谢

【问题讨论】:

    标签: c# .net sql-server linq-to-sql


    【解决方案1】:

    我认为您无法在单个查询中轻松/优雅地完成此操作,但除此之外它很简单:

    var minYear = dbContext.News.Min(x => x.ArticleDate.Year);
    var maxYear = dbContext.News.Max(x => x.ArticleDate.Year);
    

    可能可以在单个查询中执行此操作,但据我所知,只能通过添加某种包装查询。)

    【讨论】:

      【解决方案2】:

      怎么样:

      var foo = (from article in context.New
                group article.ArticleDate.Year by 1 into g
                select new
                           {
                               MinResult = g.Min(),
                               MaxResult = g.Max()
                           }).FirstOrDefault();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-04-29
        • 2015-08-04
        • 2023-03-20
        • 2017-06-10
        • 1970-01-01
        • 2020-07-20
        • 1970-01-01
        相关资源
        最近更新 更多