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

时间:2013-04-09 13:51:43

标签: c# .net sql linq datetime

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

这是你在mssql中的方法。我怎样才能使用动态linq(或者它所谓的任何东西 - 比如C#,而不是字符串)。

我会感激任何帮助。

3 个答案:

答案 0 :(得分: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;

答案 1 :(得分: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();

答案 2 :(得分: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)