Я пишу запрос в 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
.
. При дальнейшей отладке я обнаружил, что вышеупомянутый запрос работает нормально для отметки времени, которая имеет точность времени дотретье десятичное место.Например:
Сравнение 2018-11-19 11:35:05.123
и 2018-11-19 11:35:05.123
с оператором >
, как в приведенном выше запросе, возвращает false, но когда я увеличиваю точность до 4-го знака после запятой, он начинает давать сбой.
Кроме того, UpdateTimestamp в CustomTable и lastUpdateTime
оба являются объектами DateTime
.
Что может быть правильным решением для этого?
UPDATE Я получаю значение lastUpdateTime
из БД, с запросом вроде:
db.Select<SomeTable>(query => query.Where(row => "SomeKey" == key)).FirstOrDefault();