linq的DATEDIFF(以月为单位) 从表1中选择col1、col2、col3 其中(DATEDIFF(mm,tblAccount.[State Change Date],GETDATE())

linq的DATEDIFF(以月为单位) 从表1中选择col1、col2、col3 其中(DATEDIFF(mm,tblAccount.[State Change Date],GETDATE()),linq,entity-framework,linq-to-entities,Linq,Entity Framework,Linq To Entities,您要查找的 编辑:在EF4中,使用。暂时搁置原始问题,在查询中使用: select col1,col2,col3 from table1 where(DATEDIFF(mm, tblAccount.[State Change Date], GETDATE()) <= 4 在EF6中,要使用的类是。例如,请参见。我用另一种方式解决了这个问题:我根据代码计算了日期: DateTime earliestDate = new DateTime(DateTime.Now.Year, DateTi

您要查找的


编辑:在EF4中,使用。

暂时搁置原始问题,在查询中使用:

select col1,col2,col3 from table1 
where(DATEDIFF(mm, tblAccount.[State Change Date], GETDATE()) <= 4

在EF6中,要使用的类是。例如,请参见。

我用另一种方式解决了这个问题:我根据代码计算了日期:

DateTime earliestDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddMonths(-4);
var results = from t in context.table1
              where t.col3 >= earliestDate
              select t;
在EF中,改变条件:

theDate = Date.Now.AddMonths(-4)
tblAccount.[State Change Date]<

很抱歉,我使用的是实体框架,而不是linq to sql。如何使用linq?那么为什么要使用linq to sql标记?实体函数/规范函数是EF4中另一个可能更好的选项:。我相信
SqlFunctions
依赖于使用sql Server作为数据提供程序,
实体函数
不是。如果我正确理解MSDN上的描述…@SLanks:我在上面的查询中使用了此函数,但它给出了:LINQ to Entities中不支持指定的类型成员“Date”。只支持初始值设定项、实体成员和实体导航属性。目前在EF6中,使用
DbFunctions.
。这实际上更有用回答。
theDate = Date.Now.AddMonths(-4)
tblAccount.[State Change Date] < theDate