android - 检索给定月份的数据

标签 android sqlite date

我正在将用户在sqlite中选择的一些数据和日期以dd-MMM-yyyy格式存储在带有TEXTstoreDate命名列中> 类型,因为据我所知,没有直接的 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 中更多日期和时间函数的内容

Date And Time Functions

关于android - 检索给定月份的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20812595/

相关文章:

android - 在 Android 中找不到 com.yqritc :android-scalablevideoview:1. 0.4 react-native-video

android - 根据第一个微调器的选定值从第二个微调器获取选定值

sqlite - 如何在 UWP 项目中使用预先设计好的 SQLite?

java - 如何以jsp页面的spring形式获取当前日期

sqlite - 如何在 SQLite 中将时间戳转换为字符串?

java - 在Java中打印两个不同日期之间的日期

java - AmazonS3分段上传

java - 共享首选项不保存或加载数据

具有多个 SQL 语句 : $db->Query() works, $this->db_sqlite->query() 的 PHP/SQLite 失败

performance - 用于客户端-服务器的 SQLite