订购日期以sqlite降序

时间:2014-12-03 13:08:55

标签: sqlite

我在sqlite中有以下表格:

CREATE TABLE LICENSE (OBJECT_ID           INTEGER PRIMARY KEY  AUTOINCREMENT,
                      LICENSE             BLOB NOT NULL,
                      NAME                VARCHAR(255), 
                      TYPE                VARCHAR(255) NOT NULL,
                      EXPIRATION_DATE     DATE,
                      CREATION_DATE       DATE NOT NULL)

我想显示所有许可证,从最新的许可证到最旧的许可证。我使用这个简单的查询:

SELECT * FROM license order by date(CREATION_DATE) desc

令人惊讶的是,结果是这个(我只显示了creation_date列):

11 Sep. 2014 13-59-07
17 Sep. 2014 15-39-26
17 Sep. 2014 17-48-05
18 Sep. 2014 09-59-49
06 Oct. 2014 15-18-44
06 Oct. 2014 15-40-22

所以我试图在我的查询中用asc替换desc,但是我得到了相同的结果。

我如何才能获得正确的订单?

1 个答案:

答案 0 :(得分:1)

这些字符串不属于supported date formats之一。

可以使用substr()来提取日期字段,并使用CASE来替换带有可排序数字的月份字符串,但最好将值存储在适当的位置首先是数据库中的格式。