我找不到解决我的问题的方法。
我有一个 HTML5 Web SQL 数据库,其中有一个如下表:
db.transaction(function(tx) {
tx.executeSql("CREATE TABLE IF NOT EXISTS todo " +
"(todoId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, " +
"note VARCHAR(100) NOT NULL, " +
"state VARCHAR(100) NOT NULL, " +
"todoDate DATETIME NOT NULL)");
});
当我向该数据库添加值时(符号 = dd-MM-yyyy),看起来 todoDate 作为字符串添加到数据库中。
当我使用以下查询从数据库中收集一些 todoDate 值并对其进行排序时,这些值以错误的顺序排序:
sql = "select * FROM todo order by todoDate asc";
Output:
todoId - note - state - todoDate
3 - blabla - someinfo - 01-01-2013
1 - blabla - someinfo - 22-09-2012
2 - blabla - someinfo - 25-10-2012
我想得到以下订单:
todoId - note - state - todoDate
1 - blabla - someinfo - 22-09-2012
2 - blabla - someinfo - 25-10-2012
3 - blabla - someinfo - 01-01-2013
我怎样才能实现这个目标?
我找到了函数 str_to_date 但它不起作用或者我做错了什么。
提前致谢!
HTML5 Web SQL 数据库实际上是 SQLite。SQLite 没有 DATETIME 类型 http://www.sqlite.org/datatype3.html。如果您向它们发送字符串,它会将它们存储为字符串。 SQLite 建议您使用 ISO-8601 规范格式(例如“2012-09-22”),以便比较按预期进行。 SQLite 提供了一系列有用的日期时间函数来处理数据库中的日期时间值。看here http://www.sqlite.org/lang_datefunc.html。或者,您可以存储毫秒,但我个人更喜欢存储字符串,因为它们是人类可读的,这有助于调试。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)