SQLite按日期和分组顺序排序

时间:2014-03-26 11:41:03

标签: sqlite

我有一张SQLite表,如下所示:

channel     message     time
123         hello       2014-03-25 21:33:52
123         there       2014-03-25 22:31:00
222         hi also     2014-01-22 10:19:00
222         bye         2014-01-22 11:29:00

现在,我想获取每个channel的最新消息,并按DESC排序所有结果。

到目前为止我得到的是:

SELECT * from history WHERE GROUP BY channel order by date(time) DESC;

这会返回每个channel的最新消息,但结果不符合规定。

我得到了:

222         bye         2014-01-22 11:29:00
123         there       2014-03-25 22:31:00

频道123应该是最新的频道。

任何想法我做错了什么?

2 个答案:

答案 0 :(得分:2)

我只是尝试使用日期和时间对我的数据进行排序,但它有效,但仅适用于DATE或TIME(我的字段名称)

在您的情况下,列的名称是“时间”,那么为什么使用date(time)而不是简单time?尝试简单地订购:

SELECT * from history WHERE GROUP BY channel order by time DESC;

答案 1 :(得分:0)

在Sqlite数据库中,日期类型不是NSDate类型,它充当字符串,因此它不会根据日期对您的记录进行排序。你必须以其他方式做到这一点。