当使用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'方法? –