将两个相等的时间戳与'>'运算符进行比较将返回true

时间:2018-11-22 04:25:18

标签: c# postgresql timestamp ormlite-servicestack

我正在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.1232018-11-19 11:35:05.123>运算符进行比较将返回false,但是当我确实将精度提高到小数点后四位时,它就开始失败。 / p>

此外,CustomTable中的UpdateTimestamp和lastUpdateTime都只是一个DateTime对象。

对此有什么合适的解决方案?

更新 我从数据库中获取lastUpdateTime的值,查询如下:

db.Select<SomeTable>(query => query.Where(row => "SomeKey" == key)).FirstOrDefault();

0 个答案:

没有答案