Android 如何从基于sqlite的日期约束中提取数据

Android 如何从基于sqlite的日期约束中提取数据,android,sqlite,Android,Sqlite,我正在使用sq-lite做一个包含一个名为“Purchase”的表的应用程序。表有三个字段id、购买金额、日期。当我浏览谷歌时,我知道日期字段以整数或文本的形式存储在sq-lite中。所以我使用var char来存储文本。 现在我的问题是,我希望根据日期约束显示表中的详细信息 (示例:2012年7月27日至2013年8月10日之间的数据)由于日期字段声明为var char,如何提取数据。。 任何人都可以帮助…这是我在DBAdapter类中使用的方法: public Cursor getAllDe

我正在使用sq-lite做一个包含一个名为“Purchase”的表的应用程序。表有三个字段id、购买金额、日期。当我浏览谷歌时,我知道日期字段以整数或文本的形式存储在sq-lite中。所以我使用var char来存储文本。 现在我的问题是,我希望根据日期约束显示表中的详细信息 (示例:2012年7月27日至2013年8月10日之间的数据)由于日期字段声明为var char,如何提取数据。。
任何人都可以帮助…

这是我在DBAdapter类中使用的方法:

public Cursor getAllDetailsField(String date) {

        return db.rawQuery("select * from " + TABLE_NAME_FIELDW + " where "
                + KEY_DATE + " = '" + date + "'", null);
    }
这里Date作为参数传递,这意味着当我在活动中使用此方法时,我必须为该方法分配一个日期,以便它执行查询。上面的查询只是获取我在活动中传递的日期的记录

活动中:

public Cursor getAllDetailsField(String date) {

        return db.rawQuery("select * from " + TABLE_NAME_FIELDW + " where "
                + KEY_DATE + " = '" + date + "'", null);
    }
私有void loadFieldDatabase(){

String date=app.getDARDate();
//日期是从应用程序类对象获取的,您可以对其进行设置
//在以前或当前的活动中,您可以通过任何方式获取
//你想。只要确保你通过的任何东西都包含日期值
字符串日期=app.getDate();
光标c=db.getAllDetailsField(日期);
如果(c!=null&&c.getCount()>0){
c、 moveToFirst();
对于(int count=0;count
你会发现我还没有为你写查询。但是我认为您可以自己做

考虑使用SQLite日期格式

使用
YYYY-MM-DD
格式的日期将大大简化您的代码,允许更快地进入数据库(无需获取每一行以对代码进行评估),还可以使用索引利用性能


转换现有数据也很容易。

您可以直接在DBAdapter类中使用query。你想要这样的例子吗?我会把它作为答案贴出来。仅供参考,我已将日期声明为文本(例如,2013年12月27日),如果我使用直接查询,如何将日期的月份与字符串进行比较如果我想显示最近2个月的数据,如何编写查询您能显示任何小示例是的。我将简短地发布如果您需要适配器和在自定义ListView中显示记录的总样本,我也可以发布它。您是想让我来,还是让我来处理?您的数据是如何存储的?是
文本
,对,但是哪种格式
d/m/y
?我还有一个疑问,我是android新手,如果这是一个愚蠢的问题,请道歉。我的问题是:此查询是否返回特定日期的数据…例如,如果我的日期为2013年7月25日,则查询将返回该日期内的所有购买详细信息。。?但是我想从那天到现在是的,它返回特定日期的数据。但正如我在下面的回答中所写,你们应该试着自己提出疑问。在三天的失败后,我解决了同样的问题。我甚至没有得到这么多人的帮助。你自己试试看。我自己也要试试。我也是一个初学者,记录在案。链接1:链接2:如果你在参考这些链接后仍然遇到问题,请告诉我。