Сравнение двух одинаковых временных меток с оператором «>» возвращает true - PullRequest
0 голосов
/ 22 ноября 2018

Я пишу запрос в 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();
...