【发布时间】:2014-12-03 13:08:55
【问题描述】:
我在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
所以我尝试在查询中将 desc 替换为 asc,但得到的结果完全相同。
我怎样才能得到正确的订单?
【问题讨论】:
-
SQLite 没有真正的数据类型
date。您基本上可以将所有内容存储在date列中,并且始终按字母顺序进行排序,而不是基于“真实”日期值。 -
那么为什么 '06 Oct. 2014 15-40-22' 会出现在 '11 Sep. 2014 13-59-07' 之后呢?
-
按日期时间(CREATION_DATE) DESC 排序
-
我试过了,还是不行。
标签: sqlite