开发者

BETWEEN EQUIVALENT in LINQ

开发者 https://www.devze.com 2023-01-23 05:09 出处:网络
I am looking LINQ equivalent for the following query Select * from ct_rate WHERE \'2010-10-01 00:00:00\'

I am looking LINQ equivalent for the following query

Select * from ct_rate
WHERE
'2010-10-01 00:00:00'
BETWEEN start_date and end_date开发者_C百科;

ANY IDEA?


You need to use two comparison operations:

DateTime date = new DateTime(2010, 10, 1);

var results = from rate in ct_rates
              where rate.StartDate <= date && rate.EndDate >= date
              select rate;


Just use ordinary comparison operators

var result = ct_rates
    .Where(x => x.start_date <= myDate && x => x.endDate >= myDate);


In our case, Robert's answer was close to what I was looking for. In our data model, our 'end' or 'through' date columns are nullable.

Something like the following was needed:

Category.Where(
    w => w.ValidFrom <= now && 
   (w.ValidThru == null ? DateTime.MaxValue : w.ValidThru) >= now).Select(s => s).Dump();


I found this works when wanting only to compare the data part.

var results = from rate in ct_rates
              where rate.StartDate.Date <= date && rate.EndDate.Date >= date
              select rate;


something like this?

var result = from context.ct_rate.Where(d => d.start_date >= "2010-10-01 00:00:00" && d.end_date <= "2010-10-01 00:00:00")
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号