当前位置: 首页 > 知识库问答 >
问题:

无法用strftime()使SQLite rawquery在Android应用程序中工作

鲁辉
2023-03-14
public Cursor getCursorFuerMonat(int monat){
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor= db.rawQuery("SELECT "+columns+"FROM "+TABLE_BIER+" WHERE strftime('%m',"+KEY_DATUM+") = ?",new String[]{""+monat});
    cursor.moveToFirst();
    return cursor;
}
public class DatabaseHandler extends SQLiteOpenHelper {
//Version der Datenbank
private static final int DATABASE_VERSION = 1;
// Name der Datenbank
private static final String DATABASE_NAME = "bierZaehlDB";

// Name der Tabelle
private static final String TABLE_BIER = "bierTabelle";

// Namen der Spalten
private static final String KEY_ID = "_id";
private static final String KEY_DATUM = "SpalteDatum";
private static final String KEY_ANZAHL = "SpalteAnzahl";
private String[] columns = {
        KEY_ID, KEY_ANZAHL, KEY_DATUM
};

共有1个答案

何章横
2023-03-14

首先,向字符串添加数组(如columns)使用隐式数组到sting转换,即字符串[_id,SpalteDatum,spalteanzahl]包括方括号。

然后,strftime('%m',...)从date字段中提取一个两位数的月份,因此对于e。g.二月你会得到字符串“02”,而不是“2”。可以使用string.format()格式化这样的数字。

最后,在from之前缺少一个空格。

public Cursor getCursorFuerMonat(int monat){
    SQLiteDatabase db = this.getReadableDatabase();
    String select = "SELECT _id, SpalteDatum, SpalteAnzahl " + 
                    "  FROM bierTabelle " + 
                    " WHERE strftime('%m', SpalteDatum) = ?";
    Cursor cursor= db.rawQuery(select, new String[]{String.format("%02d", monat)});
    cursor.moveToFirst();
    return cursor;
}
 类似资料:
  • 我无法在我的应用程序中使用proguard。当我将minify启用为true时,布局屏幕中的textinputlayout工作正常,但我有一个alertdialog,其中包含一个膨胀的XML,该XML没有膨胀(该XML包含一个textinputlayout。请帮助大家。这是代码片段。 PS:我正在使用手机应用程序发帖,请不要抨击对齐不当。我真的需要帮助。 建筑渐变条目-- XML屏幕中的TextI

  • 我想将数据发送到一个WebService,但它没有返回一个有效的反馈,并且在字符串上显示错误。我正在使用KSOAP2。 null 对象已收集无法计算org.ksoap2.serialization.soapobject.ToString() 如果一切正常,它应该给我一个'OK',但是WebService返回一个XML(responseDump): <?XML Version=“1.0”encodi

  • 我正在使用SeleniumJavaJAR版本:3.4.0Appium,桌面版本:1.4.13.1Java客户端版本:5.0.0-BETA9 代码和所需的功能是: } 但当我运行它时,在eclipse控制台中出现了以下错误: 以下是appium的错误: 试图通过更改不同版本来解决,但无法解决。appium正在显示错误,但同时emulator正在显示已安装的应用程序。 有人有相同的问题吗?请提出解决方

  • 我已经尝试了这里提到的许多解决方案,但我仍然无法解决这个问题。我收到: “Google登录失败。com.google.android.gms.common.api.apiException:10” 下面是我的代码: 附言。我也在同一个项目中使用Firestore数据库。我已经成功地将google-services.json保存在应用程序的文件夹中。

  • 我最近开始使用Android Studio。我正在通过教程学习,我制作了一个下载原始数据的flicker应用程序的一部分。当我每次尝试运行它时,我都会在“消息”选项卡中看到这个错误: 错误:配置项目': app'时发生问题。无法解析配置': app:_debugCompile'的所有依赖项。找不到com.android.support: appcomat-v7:22的任何匹配项。因为com.and

  • 我正在Android Studio中制作一个应用程序,现在正试图通过adb进行调试。当我点击Android这个词和底部栏上的logo时,logcat就会出现并识别出我的设备。然后我看到: 我需要对我的应用程序做什么才能使其“可调试”? 仅供参考,之前在Eclipse中开发这个应用程序,亚行工作得很好。