BETWEEN CAST(GETDATE() AS DATE) AND DATEADD(WEEK, 4, CAST(GETDATE() AS DATE))
这就是您在 mssql 中的操作方式。我怎样才能使用动态 linq(或任何它被称为的东西——比如不是 C#,而是字符串)来做到这一点。
我会很感激任何帮助。
我假设这是 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)