我正在OrmLite中编写查询,例如:
var items = db.Select<CustomTable>(query => query
.Where(record => record.UpdateTimestamp > lastUpdateTime)
.OrderBy(status => status.UpdateTimestamp)
.Limit(limit));
return items;
上面的查询中的表达式record.UpdateTimestamp > lastUpdateTime
返回true,但是在数据库中两者的值完全相同。同样在调试程序时,我发现它们存储的值完全相同:2018-11-19 11:35:05.24345
。
在进一步调试中,我发现上面的查询对于timestamp可以正常工作,它的时间精度可以达到小数点后三位。例如:
像上述查询中那样,将2018-11-19 11:35:05.123
和2018-11-19 11:35:05.123
与>
运算符进行比较将返回false,但是当我确实将精度提高到小数点后四位时,它就开始失败。 / p>
此外,CustomTable中的UpdateTimestamp和lastUpdateTime
都只是一个DateTime
对象。
对此有什么合适的解决方案?
更新
我从数据库中获取lastUpdateTime
的值,查询如下:
db.Select<SomeTable>(query => query.Where(row => "SomeKey" == key)).FirstOrDefault();