【发布时间】:2010-06-24 06:01:06
【问题描述】:
我正在根据日期对我的数据库进行排序。 SQLite 中的日期字段只不过是一个字符串,以 dd-mm-yyyy 的形式存储。 我如何进行排序。
我的想法是创建一个虚拟表。将日期转换为 yyyymmdd 格式。然后简单地使用按日期列排序对其进行排序。然后再次删除表。
有没有更有效或更好的方法?
【问题讨论】:
我正在根据日期对我的数据库进行排序。 SQLite 中的日期字段只不过是一个字符串,以 dd-mm-yyyy 的形式存储。 我如何进行排序。
我的想法是创建一个虚拟表。将日期转换为 yyyymmdd 格式。然后简单地使用按日期列排序对其进行排序。然后再次删除表。
有没有更有效或更好的方法?
【问题讨论】:
您应该重新创建数据库以将数据存储为 ISO 日期 yyyy-mm-dd(按照建议),然后在 SQLite 中排序就可以了。
除此之外,您始终可以从该字段中子串字段,并通过它们进行排序,但那太老套了。在 Android 上太糟糕了,您不能拥有用户定义的函数。
【讨论】:
更好的方法是在数据库中使用 Date 数据类型。这样你就可以轻松:
SELECT * FROM table ORDER BY dateColumn;
或
SELECT * FROM table ORDER BY dateColumn DESC;
如果你想按其他顺序。
如果您将其设为日期数据类型,对您来说会更容易。
编辑
错误的链接。感谢您的评论,这是数据类型的正确链接:http://www.sqlite.org/datatype3.html
edit
【讨论】: