Android 按日期排序的表格存储在文本列中

Android 按日期排序的表格存储在文本列中,android,sqlite,Android,Sqlite,我有一个应用程序,并在SQLite上存储了一些数据。我有一个名为date的列,存储字符串数据格式如下: 2018年12月30日-部分数据 2019年1月1日-部分数据 2018年12月31日-部分数据 2019年1月2日-部分数据 但是当我想从表ORDER BY date中选择*。我可以在不更改日期格式的情况下按照正确的日期顺序订购此表吗 例如,当我使用SELECT*FROM mytable ORDER BY date时,所需结果: 2019年1月2日-部分数据 2019年1月1日-部分数据 2

我有一个应用程序,并在SQLite上存储了一些数据。我有一个名为date的列,存储字符串数据格式如下:

2018年12月30日-部分数据
2019年1月1日-部分数据
2018年12月31日-部分数据
2019年1月2日-部分数据

但是当我想
从表ORDER BY date
中选择*。我可以在不更改日期格式的情况下按照正确的日期顺序订购此表吗

例如,当我使用
SELECT*FROM mytable ORDER BY date
时,所需结果:

2019年1月2日-部分数据
2019年1月1日-部分数据
2018年12月31日-部分数据
2018年12月30日-部分数据


您必须更改此列的格式以避免出现这种情况
如果您需要这样的陈述:

select * from mytable 
order by 
substr(date, 7, 4) || substr(date, 4, 2) || substr(date, 1, 2) || substr(date, instr(date, '-')) desc
本部分:

substr(date, 7, 4) || substr(date, 4, 2) || substr(date, 1, 2)

将日期重新排列为
YYYYMMDD
,使其具有可比性并可排序。

这是否有帮助,或者您是否正在使用Room?排序不正确的可能原因是,由于它是一个字符串,因此“某些数据”部分会影响排序。您应该从字段中删除该部分(可能创建一个新列),然后它就可以工作了。