在LINQ to SQL中,如何仅比较sql datetime列和.net datetime对象的日期部分?在LINQ中比较日期部分
回答
尝试同时使用的Date
属性:
Date today = DateTime.Today; // Effectively DateTime.Now.Date
var dataFromToday = from record in context.Records
where record.TimeStamp.Date == today
select record;
我相信这个工程的LINQ to SQL ...为tvanfosson说,它并不适用于EF。
我知道它没有。那是我昨天的事。 – tvanfosson
@tvanfosson:正式做出更强调:) –
也是一个真正的痛苦,因为我通常嘲笑单元测试的数据上下文,它确实与LINQ一起工作(明显)。我必须记住,在开发单元测试的存储库时,可能会说谎。 – tvanfosson
Linq to SQL支持将Date属性转换为SQL以进行比较等。有关支持选项的更多信息,请参见MSDN。
你可以创建一个CLR UDF来做日期比较,然后在你的linq中将它引用到sql linq查询中。
using System.Data.Objects.SqlClient; //Don't forget this!!
//You can access to SQL DatePart function using something like this:
YourTable.Select(t => new { DayOfWeek = SqlFunctions.DatePart("weekday", t.dateTimeField) - 1 }); //Zero based in SQL
//You can compare to SQL DatePart function using something like this:
DateTime dateToCompare = DateTime.Today;
YourTable.Where(t => SqlFunctions.DatePart("weekday", t.dateTimeField) - 1 == dateToCompare }); //Zero based in SQL
using System.Data.Entity;
DbFunctions.TruncateTime(u.BirthDate) = DbFunctions.TruncateTime(someDate)
- 1. 在linq中比较日期
- 2. Linq,日期比较
- 3. LINQ中的日期比较
- 4. 如何在linq c中比较日期#
- 5. 日期比较LINQ的
- 6. Linq比较2日期
- 7. 比较的日期与LINQ
- 8. 日期比较使用LINQ
- 9. 比较2个日期时间变量只是日期部分在LINQ与EF
- 10. 使用LINQ比较日期的一部分
- 11. 比较日期 - 忽略小时部分
- 12. 获取日期部分仅用于比较日期中的DateTime
- 13. 如何比较LINQ中的日期?
- 14. 比较LINQ中的过去日期
- 15. 比较日期逻辑Linq中
- 16. 如何仅比较linq中的日期?
- 17. 比较LINQ和C中的日期#
- 18. 日期比较/连续日期分组
- 19. 用于比较的日期时间字段的日期部分
- 20. 比较LocalDate和Apache日期LocalDateTime的日期部分
- 21. 如何比较只有日期部分今天交货日期
- 22. SQL Server比较日期的月份 - 日期部分
- 23. 只比较两个日期的时间部分,忽略日期部分
- 24. 比较日期与linq模糊
- 25. MySql Linq实体日期比较
- 26. LINQ GROUP BY和比较日期
- 27. Linq比较字符串日期
- 28. Linq和比较两个日期列
- 29. LINQ的日期比较问题
- 30. 在DataView.RowFilter中比较日期?
我知道EF不支持这种转换,但LINQ to SQL的支持可能使用的日期时间的'.Date'属性进行比较。 - 只是检查,它确实。链接张贴在我的答案。 – tvanfosson
在EF中,您可以使用[EntityFunctions.TruncateTime](http://msdn.microsoft.com/zh-cn/library/dd395596.aspx)。见http://stackoverflow.com/questions/4188066/linq-to-entities-group-by-failure-using-date –