降我有以下表中的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在我的查询,但我更换说明得到相同的结果。
如何获得正确的订单?
SQLite没有真正的数据类型“日期”。您可以基本上将所有内容存储在“日期”列中,排序总是按字母顺序进行,而不是基于“实际”日期值。 – 2014-12-03 13:23:54
那么为什么'06 2014年10月15-40-22'会在'11 Sep. 2014 13-59-07'之后? – StephaneM 2014-12-03 13:50:29
order by datetime(CREATION_DATE)DESC – 2014-12-03 14:56:08