当使用 Linq2Sql 在特定日期时间查询数据库时,查询总是没有结果。我怀疑时间差了纳秒导致了差异。时间必须相等但不相等。如何查询数据库的日期时间,精确到秒?
以下代码有效,但它完全排除了时间部分:
var Foos = Bars
.Where(x =>
DbFunctions.TruncateTime(x.EndDate) == DbFunctions.TruncateTime(endDate))
.Select(x => x.Id);
也试过这段代码(不是很漂亮)但是编译器提示在 linq 查询中有 Date。
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())
最佳答案
您可以使用 DiffSeconds
像这样的方法:
var Foo = Bars
.Where(x => DbFunctions.DiffSeconds(x.EndDate, endDate) == 0)
.Select(x => x.Id);
关于c# - 如何使用 LinqToSql 查询特定日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35143342/