动态LINQ:比较今天和四个星期前的日期

本文关键字:四个 日期 LINQ 比较 今天 动态 | 更新日期: 2023-09-27 18:08:20

BETWEEN CAST(GETDATE() AS DATE) AND DATEADD(WEEK, 4, CAST(GETDATE() AS DATE))

在mssql中就是这样做的。我该如何使用动态linq(或者不管它叫什么——不是c#,而是字符串)来做到这一点呢?

动态LINQ:比较今天和四个星期前的日期

我猜这是c#。

如果是,您可能正在寻找这样的内容:

var theDate = {some date};
if (theDate <= DateTime.Today && theDate >= DateTime.Today.AddDays(-4 * 7))
{
    // stuff goes here
}

对于LINQ来说,这真的取决于你想做什么,但这应该给你一个大致的想法:

var foos = from foo in SomeQueryable
    where foo.Date <= DateTime.Today
    && foo.Date >= DateTime.Today.AddDays(-4 * 7)
    select foo;
var qryResult =   (from tbl in dbcontext.Yourtable
                      where  tbl.CheckDate >= DateTime.Today  
             && tbl.CheckDate <=  System.Globalization.CultureInfo.InvariantCulture.Calendar.AddWeeks(DateTime.Today, 4) )
            select tbl 
            ).ToList();

如果你只是想知道如何在c#中比较日期,那么:
创建扩展:

public static DateTime AddWeeks(this DateTime date, int weeks)
{
    return date.AddDays(7*weeks);
}

在Linq中:

var now = DateTime.Now;
whatever.Where(d => now.AddWeeks(-4) < d && d < now)