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

这就是您在 mssql 中的操作方式。我怎样才能使用动态 linq(或任何它被称为的东西——比如不是 C#,而是字符串)来做到这一点。

我会很感激任何帮助。

4

3 回答 3

7

我假设这是 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;
于 2013-04-09T14:00:22.027 回答
1
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();
于 2013-04-09T14:11:04.377 回答
0

如果您只需要知道如何在 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)
于 2013-04-09T14:02:44.847 回答