无法按特定月份检索数据
Posted
技术标签:
【中文标题】无法按特定月份检索数据【英文标题】:Data cannot be retrieved by given a specific month 【发布时间】:2015-12-19 16:58:00 【问题描述】:我想检索属于 12 月份的数据。
public Cursor readData()
Cursor c=database.rawQuery(" SELECT _id, Date,Weather,Status, TimeIn_Info, TimeOut_Info FROM " + MyDatabaseHelper.TABLE_INFO +
" WHERE strftime('%m',Date) = ? ",
new String[]12+"", null);
if (c != null)
c.moveToFirst();
return c;
但是,不会显示任何数据。我确保它有一个 12 个月的数据。
MyDatabaseHelper for Table_Info
public static final String TABLE_INFO="Information";
public static final String Date="Date";
public static final String Status="Status";
public static final String TimeIn_Info="TimeIn_Info";
public static final String TimeOut_Info="TimeOut_Info";
public static final String Weather="Weather";
public static final String Name="Name";
public void onCreate(SQLiteDatabase db)
db.execSQL("create table " + TABLE_INFO + " ( " + ID + " INTEGER PRIMARY KEY ,Name TEXT,Weather TEXT, Date DATETIME, Status Text, TimeIn_Info DATE TIME, TimeOut_Info DATETIME)");
我使用date-time picker
选择日期,并且日期以19-12-2015
的格式保存日期。
我的数据库没有问题,因为数据显示出来了 当我将条件更改为名称时。
谁能帮我解决问题?
【问题讨论】:
如果可能的话你能提供db文件吗 我最好的猜测是因为列名 date 因为它也是一个关键字,您可能想要更改它并执行 @ZaidHoona 你想看 db 文件的屏幕截图吗? 其实想要的ddl就是这样,即创建语句和你正在填写的一些例子的数据就是这样 @ZaidHoona 请检查 【参考方案1】:您可以尝试将插入日期时间更改为格式:2015-12-15 (%Y-%m-%d)
【讨论】:
我试过 12 没有结果,而 '12' 有结果 当然。你介意告诉我你的日期字符串是什么格式吗?是 YYYY-MM-DD 吗? @GiapLee 感谢您的回答。我使用了您的代码,但即使是 1 月也会显示数据 嗨。您可以尝试使用我刚刚添加的新解决选项,因为我认为 strftime('%m', '15-12-2015') -> 在日期字符串中返回错误的月份编号位置以上是关于无法按特定月份检索数据的主要内容,如果未能解决你的问题,请参考以下文章
如何按 MS Access 的特定月份汇总特定列数据并进入 vb.net 中的文本框