动态LINQ:比较今天和四个星期前的日期
本文关键字:四个 日期 LINQ 比较 今天 动态 | 更新日期: 2023-09-27 18:08:20
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)