Android 按日期排序的表格存储在文本列中
我有一个应用程序,并在SQLite上存储了一些数据。我有一个名为date的列,存储字符串数据格式如下: 2018年12月30日-部分数据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
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?排序不正确的可能原因是,由于它是一个字符串,因此“某些数据”部分会影响排序。您应该从字段中删除该部分(可能创建一个新列),然后它就可以工作了。