當使用Linq2Sql在特定日期時間查詢數據庫時,查詢總是返回而沒有結果。我懷疑時間是由納秒導致的差異。時代必須平等,但不是平等的。我如何查詢數據庫的日期時間,精確到第二位?如何使用LinqToSql在特定日期時間查詢
下面的代碼的工作,但它完全排除時間部分:
var Foos = Bars
.Where(x =>
DbFunctions.TruncateTime(x.EndDate) == DbFunctions.TruncateTime(endDate))
.Select(x => x.Id);
也試過這個代碼(其是不漂亮),但是編譯器抱怨具有LINQ查詢內部日期。
var Foo = Bars
.Where(x =>
x.EndDate.Value.Date == endDate.Value.Date &&
x.EndDate.Value.Hour == endDate.Value.Hour &&
x.EndDate.Value.Minute == endDate.Value.Minute &&
x.EndDate.Value.Second == endDate.Value.Second)
.Select(x => x.Id);
也試過這個,但查詢總是回來空。可能ToString()在Linq查詢中不起作用。
var foo = bars.Where(x => x.EndDate.ToString() == endDate.ToString())
我不得不做類似的東西了一段時間回來,用http://stackoverflow.com/questions/1004698/how-to-truncate-milliseconds-off-of-a-net-datetime去解決它。我沒有用你的例子測試過。 –
不確定這將在linq查詢中起作用,但是我會給它一張 – navig8tr
您是否嘗試使用'DiffSeconds'方法? –