Linq查询与2个日期之间的月份差异
问题描述:
我有2字段FromDate和ToDate在数据库中。我想要结果LINQ查询具有2个日期的月份差异与某些动态值的记录。Linq查询与2个日期之间的月份差异
其实我有一个数据库表作为EmploymentHistory与字段NameOfCompany作为nvarchar(50),ProfileID作为bigint,EmoploymentFrom作为日期时间,EmploymentUpto作为日期时间,IsCurrentEmployer作为位。
ProfileID是Profile 的引用密钥我想根据月经验生成所有配置文件的查询。
如果IsCurrentEmployer为true,那么EmploymentUpto为null。
答
如果你在.NET 4+你可以尝试EntityFunctions.DiffMonths
实用方法如:
var query = query
.Where(i=>
EntityFunctions.DiffMonths(i.FromDate, i.ToDate) == 2
);
答
一旦你拉出来日期的分贝,你可以执行该代码
var resultWithMonth = datevalue2.Subtract(datevalue2).Days/(365.25/12)
答
,您可以用减法FUNC作为选择参数进行压缩操作。
IEnumerable<DateTime> datesA = //blah;
IEnumerable<DateTime> datesB = //blah;
IEnumerable<DateTime> differences =
datesA.Zip(datesB, (dA,dB) => dA.Subtract(dB));
答
Asuming您使用实体框架.. U可以
Query(q => q.ToDate < DateTime.Today && q.FromDate > DateTime.Today.AddMonths(-2))
查询任何Iqueryable ..可以选择,第一,firstOrDefault .. 当然你可以改变DateTime.Today你的params。
'EntityFunctions'现在已经被'DbFunctions' – Flexicoder 2016-09-19 09:31:06