EF日期筛选异常:SqlServer.DATEDIFF”函数的 DATEPART 参数必须是文字字符串

一、在使用EF日期筛选的时候可能会出现这样的异常:“sqlServer.DATEDIFF”函数的 DATEPART 参数必须是文字字符串。”

出现异常的代码

DateTime date = DateTime.Now.AddYears(-1);
string dateType = "month";
int count1 = _member.DbSet.Where(q => sqlFunctions.DateDiff(dateType,q.ActiveTime,date) == 0).Count();


出现异常的原因:

在表达式中,好像DateDiff中的 日期格式参数不支持变量传入。

解决方案:

这样指定就不会异常了。

int count2 = _member.DbSet.Where(q => sqlFunctions.DateDiff("month",date) == 0).Count();


更多参考:

EF日期格式筛选

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...