在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 –