为什么Android sqlite数据库查询按日期筛选不起作用?

为什么Android sqlite数据库查询按日期筛选不起作用?,android,database,sqlite,datetime,filter,Android,Database,Sqlite,Datetime,Filter,我正在尝试使用Android Sqlite数据库的Sqlite查询字符串从该数据库获取数据。这是我的密码 Date today = Calendar.getInstance().getTime(); Cursor c = dbRead.query(TABLE_NAME, new String[]{KEY_DATA}, KEY_DUE_DATE + ">=?", new String[]{String.valu

我正在尝试使用Android Sqlite数据库的Sqlite查询字符串从该数据库获取数据。这是我的密码

Date today = Calendar.getInstance().getTime();

        Cursor c = dbRead.query(TABLE_NAME,
                new String[]{KEY_DATA}, KEY_DUE_DATE + ">=?",
                new String[]{String.valueOf(today)},
                null, null, null, null);
在这个查询中,我希望得到截止日期大于今天的所有列


截止日期以
'05/31/2017 12:00 AM'
格式存储在数据库中。有人能告诉我我的问题出在哪里吗?我正在从数据库中获取
0
对象。

您的日期不是Sqlite喜欢的格式。。这一年应该是第一个“截止日期以'05/31/2017 12:00 AM'格式存储在数据库中”——这将使事情变得困难。您的格式“06/01/1904 12:00AM”比“05/31/2017 12:00AM”更“新”。SQLite没有本机日期/时间类型。我假设您的列的类型为
TEXT
,给定您指定的格式,因此比较是按字母顺序,而不是按时间顺序。切换日期的存储方式(
INTEGER
自Unix纪元以来的毫秒数,
TEXT
使用ISO-8601等),或在每次查询时使用日期时间函数转换类型,支付转换价格。此外,还应转换
String.valueOf(今天)
将数据库保存的格式转换为正确的格式,而不是依靠Java进行正确的转换感谢各位,我将数据库格式从
DATE
更改为
INTEGER