每月/每年的SQLite过滤记录

时间:2015-11-13 08:13:21

标签: android sqlite android-sqlite

我使用dumpCursor()方法验证db是否包含正确的值
但是当我跑步时:

myDB.rawQuery("SELECT * FROM " + FeedEntry.TABLE_NAME +" WHERE YEAR(date) = 2015", null);

(日期列定义为“datetime DEFAULT NULL”)
我得到一个未被捕获的例外。

我做错了什么?

2 个答案:

答案 0 :(得分:1)

昨天我回答了类似的问题:https://stackoverflow.com/a/33657233/2649012

关键是使用strfttime()功能 要通过的参数是每月搜索'%m'或每年搜索'%y'

因此,请将您的查询更改为

myDB.rawQuery("SELECT * FROM " + FeedEntry.TABLE_NAME +" WHERE strfttime('%y', date) = '2015'", null);

答案 1 :(得分:0)

SQLite没有在其他SQL版本中找到YEAR函数。可用日期&时间函数列出on this page

根据日期的存储方式,您可能需要对列值进行简单的子字符串提取(使用SUBSTR函数),例如。