我在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,但是我得到了相同的结果。
我如何才能获得正确的订单?
答案 0 :(得分:1)
这些字符串不属于supported date formats之一。
可以使用substr()来提取日期字段,并使用CASE来替换带有可排序数字的月份字符串,但最好将值存储在适当的位置首先是数据库中的格式。