Yaq*_*mad 1 comparison date sql-server-2008 linq-to-sql
我需要根据日期范围获取数据,如:
SELECT * FROM MyTable WHERE
myDate >= 'May 17 2012' AND
myDate <= 'May 17 2012'
Run Code Online (Sandbox Code Playgroud)
我在LINQ中编写了这个查询,问题是LINQ正在将此查询转换为:
SELECT * FROM MyTable WHERE
myDate >= 'May 17 2012 12:00:00:000AM' AND
myDate <= 'May 17 2012 12:00:00:000AM'
Run Code Online (Sandbox Code Playgroud)
问题是LINQ也在考虑时间部分,但我只需要搜索日期部分.
谁能帮我?
谢谢.
只是想与您分享我找到了解决方案!
EntityFunctions为我们提供了TruncateTime(),它可以用于此目的.
EntityFunctions.TruncateTime
from e in MyContext.MyTable.Where(a =>
EntityFunctions.TruncateTime(a.DateTimeColumn) ==
EntityFunctions.TruncateTime(DateTime.Now)) select e;
Run Code Online (Sandbox Code Playgroud)
编辑: 对于EntityFramework 6及以上:
from e in MyContext.MyTable.Where(a =>
DbFunctions.TruncateTime(a.DateTimeColumn) ==
DbFunctions.TruncateTime(DateTime.Now)) select e;
Run Code Online (Sandbox Code Playgroud)