我需要获得两三年的数据,例如从'2017年1月到2019年3月'之类的时间。在我的查询中,我已将Year和Month的属性与SYear(从Year-2017),Tyear(到Year-2019)和SMonth(从Month-1(Jan)),TMonth(到Month-3(游行))。我的查询仅适用于类似年份的搜索,例如2017年1月至2017年12月。但不适用于2017年1月至2019年3月。
这是我的代码:
var Bim = new BillingInfoPerMonthManager().GetAll().Where(x => (Convert.ToInt64(x.Year) >= SYear && Convert.ToInt64(x.Year) <= TYear) && (Convert.ToInt64(x.Month) >= SMonth && Convert.ToInt64(x.Month) <= TMonth)).ToList();
我需要搜索“ 2017年1月至2019年3月”,其中 SYear = 2017,TYear = 2019,SMonth = 1,TMonth = 3 ,并根据搜索获取数据。
我该怎么做,请帮忙。
答案 0 :(得分:4)
想象一下,Year = 2017和Month = 9,而这在您想要的范围内,但是month = 9不适合Convert.ToInt64(x.Month) >= SMonth && Convert.ToInt64(x.Month) <= TMonth
尝试这样的事情:
var Bim = new BillingInfoPerMonthManager().GetAll()
.Where(x => (int.Parse(x.Year) * 12 + int.Parse(x.Month)) >= SYear * 12 + SMonth
&& (int.Parse(x.Year) * 12 + int.Parse(x.Month)) <= TYear * 12 + TMonth).ToList();