如何简单检查DateTime列是否在今天的30天内?

时间:2011-11-15 21:45:24

标签: c# asp.net-mvc-3 datetime entity-framework-4

我的表中有一个名为DateTimeOfBid的列,我需要获取DateTimeOfBid在今天30天内的所有实体。

我正在使用Entity-Framework 4来访问我的数据。

这是我到目前为止所拥有的:

EFUserAuctionLanceRepository userAuctionLanceRepository = new EFUserAuctionLanceRepository();

var potentialDiscount = userAuctionLanceRepository.FindAllUserAuctionLances()
                                                  .Where(u => u.UserId == user.UserId && u.AccountableForShopDiscount == true);

var discount = potentialDiscount.Where(p => p.DateTimeOfLance is within 30 days of today?)

如何编写这个小查询?

2 个答案:

答案 0 :(得分:4)

定义:

DateTime today = DateTime.Today;

然后使用lambda表达式

p => p.DateTimeOfLance >= today.AddDays(-30) &&
     p.DateTimeOfLance <= today.AddDays(30)

EF可能需要您执行以下操作:

DateTime today = DateTime.Today;
DateTime thirtyDaysAgo = today.AddDays(-30);
DateTime thirtyDaysFromNow = today.AddDays(30);


p => p.DateTimeOfLance >= thirtyDaysAgo &&
     p.DateTimeOfLance <= thirtyDaysFromNow

答案 1 :(得分:0)

你也可以这样做....

if (DateTime.Now.AddDays(-30).CompareTo(date) > 0)