strftime 函数在 android 中未从 sql 数据库中检索任何记录
strftime function doesn't retrieve any records from sql database in android
我正在创建一个包含 3 个字段类别(文本)、金额(整数)和日期(日期)的费用 table。
String CREATE_EXPENSE_TABLE = "CREATE TABLE " + Constants.EXPENSE_TABLE_NAME + "("
+ Constants.ID_KEY + " INTEGER PRIMARY KEY," + Constants.EXPENSE_CATEGORY + " TEXT,"
+ Constants.EXPENSE_AMOUNT + " INTEGER," + Constants.EXPENSE_DATE + " DATE" + ")";
db.execSQL(CREATE_EXPENSE_TABLE);
我正在使用 DatePicker 从用户那里获取日期并将其保存到数据库中,如下所示:
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(Constants.EXPENSE_DATE, expense.getDate().getTimeInMillis());
我想检索特定月份的费用,为此我使用 strf()
Cursor cursor = db.rawQuery("select amount from Expense where strftime('%m', date) = '7'", null);
但是没有返回任何记录。
我对 strf() - year 参数进行了同样的尝试
Cursor cursor = db.rawQuery("select amount from Expense where strftime('%Y', date) = '2017'", null);
还是没有记录。
我在这里做错了什么。请指导我。
您需要将日期值存储为字符串格式。
以下是在数据库中存储日期的有效格式。
YYYY-MM-DD
YYYY-MM-DD HH:MM
YYYY-MM-DD HH:MM:SS
YYYY-MM-DD HH:MM:SS.SSS
YYYY-MM-DDTHH:MM
YYYY-MM-DDTHH:MM:SS
YYYY-MM-DDTHH:MM:SS.SSS
HH:MM
HH:MM:SS
HH:MM:SS.SSS
now
DDDDDDDDDD
我正在创建一个包含 3 个字段类别(文本)、金额(整数)和日期(日期)的费用 table。
String CREATE_EXPENSE_TABLE = "CREATE TABLE " + Constants.EXPENSE_TABLE_NAME + "("
+ Constants.ID_KEY + " INTEGER PRIMARY KEY," + Constants.EXPENSE_CATEGORY + " TEXT,"
+ Constants.EXPENSE_AMOUNT + " INTEGER," + Constants.EXPENSE_DATE + " DATE" + ")";
db.execSQL(CREATE_EXPENSE_TABLE);
我正在使用 DatePicker 从用户那里获取日期并将其保存到数据库中,如下所示:
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(Constants.EXPENSE_DATE, expense.getDate().getTimeInMillis());
我想检索特定月份的费用,为此我使用 strf()
Cursor cursor = db.rawQuery("select amount from Expense where strftime('%m', date) = '7'", null);
但是没有返回任何记录。
我对 strf() - year 参数进行了同样的尝试
Cursor cursor = db.rawQuery("select amount from Expense where strftime('%Y', date) = '2017'", null);
还是没有记录。
我在这里做错了什么。请指导我。
您需要将日期值存储为字符串格式。 以下是在数据库中存储日期的有效格式。
YYYY-MM-DD
YYYY-MM-DD HH:MM
YYYY-MM-DD HH:MM:SS
YYYY-MM-DD HH:MM:SS.SSS
YYYY-MM-DDTHH:MM
YYYY-MM-DDTHH:MM:SS
YYYY-MM-DDTHH:MM:SS.SSS
HH:MM
HH:MM:SS
HH:MM:SS.SSS
now
DDDDDDDDDD