我正在使用sqlite数据库创建应用程序,我有表事件
CREATE TABLE "Events" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , "Date" DATETIME, "Title" TEXT, "ImgUrl" TEXT)
我将日期视为 DATETIME ,我希望表格数据按日期排序,但它没有给我分类数据,
我在SQLITE MANAGER中尝试过,但是这里也没有显示正确排序的数据。
修改 在Sqlite管理器中排序单击日期列。仍未获得排序数据。
答案 0 :(得分:1)
看起来您的查询按字典顺序排列Date
列,就好像类型是文本一样。您可能更喜欢整体类型。您的选择包括:
1。1日期和时间数据类型
SQLite没有为存储日期留出的存储类 和/或时间。相反,SQLite的内置日期和时间函数 能够将日期和时间存储为TEXT,REAL或INTEGER 值:
TEXT as ISO8601 strings(“YYYY-MM-DD HH:MM:SS.SSS”)。真如朱利安 日数,11月以来格林威治中午以来的天数 公元前24,4714根据公历格里高利历。整数 as Unix Time,自1970-01-01 00:00:00 UTC以来的秒数。 应用程序可以选择在任何这些中存储日期和时间 使用内置日期格式和格式之间自由转换 时间函数。
请参阅here。
答案 1 :(得分:0)
SQLite没有DATETime
类型,结果是因为它使用了varchar sort。
http://www.sqlite.org/datatype3.html
这是一个可行的解决方案https://stackoverflow.com/a/7161459/94962
答案 2 :(得分:0)
在这里你得到了一个排序结果,但它按月的日期没有按你的预期确定.SQLite排序日期格式为' YYYY-mm-dd',如果你如果日期不是' YYYY-mm-dd',请转换为此格式。 将您的查询修改为
SELECT * FROM Events ORDER BY(substr(Date,10,7)||' - ' || substr(Date,5,4)||' - ' || substr(Date,1,2));
希望这会对你有所帮助。