按FinancialYear过滤日期

时间:2016-01-09 05:54:26

标签: c# linq entity-framework-4

我有一张桌子,我需要按财政年度过滤数据。

财政年度介于April 1 of current yearMarch 31st of next year之间。例如:当前年度为2016,因此当前财政年度介于April 1 2016March 31 2017之间。

表格

Id    CenterId    SlNo        Date
 1        1         5        2016-01-09 10:51:43.480 
 2        2         10       2016-01-09 10:51:43.480  

我希望将SlnoCenterId=1放在Date will between current financial year

我关注的是Do i need another column of date for filtering financial year

任何帮助都非常感谢?

1 个答案:

答案 0 :(得分:1)

如果不创建新列,就不能这样做。只需计算当前的财政年度日期: -

DateTime currentFinancialYearStartDate = new DateTime(DateTime.Today.Year, 4, 1);
DateTime currentFinancialYearEndDate = new DateTime(DateTime.Today.Year + 1, 3, 31); 

然后,只需在您的过滤器中使用它们: -

var result = dbContext.Sample.Where(x => x.CenterId == 1 
                                      && x.Date >= currentFinancialYearStartDate 
                                      && x.Date <= currentFinancialYearEndDate)
                             .Select(x => x.Slno);