我正在将用户在sqlite中选择的一些数据和日期以dd-MMM-yyyy格式存储在带有TEXT
的storeDate
命名列中> 类型,因为据我所知,没有直接的 DATE
类型。现在我想按月检索存储的数据。假设我输入 01-Dec-2013
并构建 where 子句,那么我需要获取该特定月份(2013 年 12 月)的数据。有人可以建议如何实现这一目标吗?我当前的查询是:
Cursor cursor= db.rawQuery("SELECT * FROM "+TABLE_NAME+" "+whereClause+" GROUP BY "+CATEGORY, null);
whereClause 处应该给出什么?
最佳答案
SQLite does not support month names ,可悲的是。您必须使用查找表、case 语句或表示层上的开关将其转换为月份名称。
试试这个
SELECT strftime('%Y-%m', table_column) FROM `table name` WHERE strftime('%Y-%m', table_column) = '2013-04'
如果您只想打印月份名称,请尝试此操作
SELECT case strftime('%m',date_column) when '01' then 'January' when '02' then 'Febuary' when '03' then 'March' when '04' then 'April' when '05' then 'May' when '06' then 'June' when '07' then 'July' when '08' then 'August' when '09' then 'September' when '10' then 'October' when '11' then 'November' when '12' then 'December' else '' end
as month FROM `your_table` WHERE strftime('%m',date_column)='12'
还可以了解一下 SQLite 中更多日期和时间函数的内容
关于android - 检索给定月份的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20812595/