我使用dumpCursor()
方法验证db是否包含正确的值
但是当我跑步时:
myDB.rawQuery("SELECT * FROM " + FeedEntry.TABLE_NAME +" WHERE YEAR(date) = 2015", null);
(日期列定义为“datetime DEFAULT NULL”)
我得到一个未被捕获的例外。
我做错了什么?
答案 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
函数),例如。