过滤EntityDataSource的where子句中的日期

时间:2017-01-20 14:15:14

标签: c# asp.net entity-framework

我有一个EntityDataSource,我必须过滤30天以前的所有项目。

我在MSSQL数据库上的方法:

protected void EntityDataSource1_Selecting(object sender, EntityDataSourceSelectingEventArgs e)
{
    EntityDataSource1.WhereParameters.Clear();    
    EntityDataSource1.Where = "DATEDIFF(day, GETDATE(), it.CreateDate) < 30" ;
}

给出错误: DATEDIFF无法解析为有效的类型或函数

1 个答案:

答案 0 :(得分:1)

您需要致电SqlServer.DATEDIFF(),请使用此处:

EntityDataSource1.Where = "SqlServer.DATEDIFF(day, GETDATE(), it.CreateDate) < 30" ;

代替

EntityDataSource1.Where = "DATEDIFF(day, GETDATE(), it.CreateDate) < 30" ;

Here您发现类似问题,但DATEADD功能