6

我使用 SQLite 作为我的 Android 应用程序的数据存储。我创建了一个包含日期时间类型列的表。当我插入记录或选择语句时,我使用日期格式 dd.MM.yyyy (10.08.2012)。

现在,我在获取具有最新 / MAX 日期的行时遇到问题。我曾尝试使用 MAX(date_column) 语句,但它返回错误的日期。我的表中有以下日期,它返回 31.07.2012 而不是 04.08.2012。有人知道我在做什么错吗?

04.08.2012
03.08.2012
02.08.2012
01.08.2012
31.07.2012
30.07.2012

以下是部分代码:

String selection = "measurementDate = (SELECT MAX(measurementDate) FROM Measurements)";
Cursor cursor = database.query("Measurements", allColumns, selection, null, null, null, null);
cursor.moveToFirst();
...
4

2 回答 2

3

难道是因为31?
尝试看看这是否有帮助:

SELECT measurementDate FROM Measurements ORDER BY measurementDate desc LIMIT 1
于 2012-08-09T23:23:40.837 回答
3

这可能是由于对存储的字符串进行比较而不是将其视为日期。

您可以将字符串存储在不同的 YYYYMMDD 中,这样应该可以正确比较它们,或者,如果您可以修改表,将日期存储为毫秒并在需要时格式化回字符串。

这可能会有所帮助

于 2012-08-09T23:23:59.590 回答