linq to sql查询问题。
数据库有个时间字段,根据这个时间查询1个月内的数据,3个月内的数据,和六个月内的数据,如何查询,谢谢
------解决方案--------------------
var result = db.表名.Where(obj=> obj.时间字段 >= DateTime.Now.AddMonth(-1) && obj.时间字段<= DateTime.Now); //1月内
var result = db.表名.Where(obj=> obj.时间字段 >= DateTime.Now.AddMonth(-3) && obj.时间字段<= DateTime.Now); //3月内
var result = db.表名.Where(obj=> obj.时间字段 >= DateTime.Now.AddMonth(-6) && obj.时间字段<= DateTime.Now); //6月内
------解决方案--------------------dt是表对象:
IEnumerable<DataRow> query1 = dt.AsEnumerable().Where(t => (当前时间-t.时间1)<=3).ToList()
大致应该是这样。
------解决方案--------------------IEnumerable不用转成这个也可以,看自己写代码的习惯。
------解决方案--------------------
1楼是正解 但是像DateTime.Now.AddMonth(-1)这样的 linq不支持方法 应该写在外面
------解决方案--------------------方法很多,
var query= db.表名.Where(d=> d.时间字段 >= DateTime.Now.AddMonth(-1) && d.时间字段<= DateTime.Now);
或者
SqlMethods.DateDiffMonth方法
var query= db.表名.Where(d=>SqlMethods.DateDiffMonth(d.AddMonth(-1),d)==1)
参考MSDNhttp://msdn.microsoft.com/zh-tw/library/bb301738.aspx
------解决方案--------------------
不知道这个错是怎么出来的,你先把那几个linq扩展方法拆开来,看看到底是到哪个出的错。