m0_74474210 2024-05-28 19:48 采纳率: 93.8%
浏览 0

想要在数据库中查询前3天的数据




Calendar calendar=Calendar.getInstance();//当前时间
            calendar.add(Calendar.DATE,-3);
            Date date=calendar.getTime();
            SimpleDateFormat format=new SimpleDateFormat("dd-HH:mm:ss");
            String threeago=format.format(date);
            Toast.makeText(this, threeago, Toast.LENGTH_SHORT).show();
            //String threeago=String.format("dd-HH:mm:ss",calendar.get(Calendar.MONDAY),calendar.get(Calendar.HOUR),calendar.get(Calendar.MINUTE),calendar.get(Calendar.SECOND));
            //String threeago=format.format(calendar);
            SQLiteDatabase db=dataBase.getReadableDatabase();//打开数据库
            //String quary1=" select *  from "+DataBase.TABLE2 + " where " +DataBase.COLUMN_ET+">'"+threeago+"'";
            //String quary1=" select "+DataBase.COLUMN_SW +"and"+DataBase.COLUMN_EW+"  from "+DataBase.TABLE2 ;
            String quary1="select *  from "+DataBase.TABLE2+"where"+DataBase.COLUMN_ET.compareTo(threeago);
            String quary2="select "+DataBase.COLUMN_WEIGHT+" from "+DataBase.TABLE1;


  • 写回答

2条回答 默认 最新

  • 阿里嘎多学长 2024-05-28 19:48
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    从您提供的代码片段来看,您已经成功地使用了 Calendar 类来获取当前时间并减去3天,并且格式化了日期字符串。现在,您需要构建一个正确的 SQL 查询语句来从数据库中检索出前3天的数据。

    首先,您的 threeago 变量已经包含了格式化后的日期字符串,但是 SQL 查询语句中使用 compareTo 方法是不正确的。您应该使用 >(大于)或 <(小于)运算符来比较日期。

    下面是修改后的 SQL 查询语句的示例:

    // 假设您的数据库表中有一个日期列叫做 date_column
    String query = "SELECT * FROM " + DataBase.TABLE2 + " WHERE date_column > '" + threeago + "'";
    

    请注意,这里假设您的数据库表中有一个存储日期的列叫做 date_column,并且您的日期格式与 threeago 变量中的格式相匹配。如果日期格式不一致,您需要调整查询语句以适应实际的日期格式。

    此外,您的代码中有两个查询语句,一个是查询所有列,另一个是查询特定列 DataBase.COLUMN_WEIGHT。如果您只想查询特定列,您可以这样写:

    String query = "SELECT " + DataBase.COLUMN_WEIGHT + " FROM " + DataBase.TABLE1 + " WHERE date_column > '" + threeago + "'";
    

    这里同样假设 DataBase.COLUMN_WEIGHT 是您要查询的列,并且 DataBase.TABLE1 是包含这个列的表。

    最后,为了执行查询并获取结果,您可以使用 rawQuery 方法:

    Cursor cursor = db.rawQuery(query, null);
    if (cursor.moveToFirst()) {
        do {
            // 处理每一行数据
        } while (cursor.moveToNext());
    }
    cursor.close();
    

    关于参考资料,您可以查看以下链接,它们提供了有关在 Android 中使用 SQLite 数据库的详细信息:

    1. Android SQLite 数据库教程
    2. SQLite 官方文档

    希望这些信息对您有帮助!如果您有其他问题或需要进一步的帮助,请随时告诉我。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月28日

悬赏问题

  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Linux权限管理相关操作(求解答)
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表
  • ¥15 DbVisualizer Pro 12.0.7 sql commander光标错位 显示位置与实际不符
  • ¥15 求一份STM32F10X的I2S外设库
  • ¥15 android 打包报错
  • ¥15 关于stm32的问题
  • ¥15 ncode振动疲劳分析中,noisefloor如何影响PSD函数?