我正在尝试使用linq查询星期几,并且我拥有ms访问权限作为数据库。现在,由于linq不支持查询,因此我已使用以下代码使用%(mod)来检查星期几DayOfWeek
。
planQuery = planQuery.Where(x => DbFunctions.DiffDays(firstSunday, x.Date) % 7
== (int)DayOfWeek.Monday && x.Date != null);
但是,当将此代码转换为sql时,会出现问题,如下所示:
SELECT *
FROM myTable
where (DateDiff("d", [Datum], 1) % 7) = 1
当我尝试运行它时,由于%而导致语法错误。环顾四周后,我意识到%ms的访问权限是mod
因此,以下代码运行良好。但这不是转换后的SQL的样子。
SELECT *
FROM myTable
where (DateDiff("d", [Datum], 1) mod 7) = 1
如何使用linq使用mod函数查询ms访问权限?
模数是一种易于进行除法,四舍五入和减法运算的操作。
DbFunctions.DiffDays(firstSunday, x.Date) - (((int)DbFunctions.DiffDays(firstSunday, x.Date) / 7) * 7)
这应该等于DbFunctions.DiffDays(firstSunday, x.Date) % 7
,但开销略高。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句