开发工作,在于不断积累,总结经验,持续学习。
最近项目中有这样的需求:
1、删除当前月份前三个月消息(如本月是10月删除7、8、9三个月的消息只保存本月消息)。
2、更新非本月消息为已读消息(如本月为10月,1为已读状态,0为未读状态,10月的所有消息状态不变,非本月消息状态都为1)。
由于之前对数据库中对时间的操作比较少,所以很生疏,也是找了很多网络资源才实现了功能,也学到了很多,接下来分享给大家,希望对大家有所帮助。
第一个需求我的解决方法是:
/** * 删除当前时间前三个月数据 * @return */ public int delete3MonthNews(){ String where=NEWS_TIME+" < date( ?, ? , ? ) "; String []args=new String[]{"now","start of month","-2 month"}; int result= database.delete(TB_NAME,where,args); return result; }其中NEWS_TIME为表中要比较的时间字段,TB_NAME为该表的表名。
第二个需求我的解决方法是:
/** * 更新非本月消息为已读消息 * */ public void updateNotthisMonth(){ ContentValues values=new ContentValues(); values.put(NEWS_READ,"1"); String where=NEWS_TIME+" < date(?,?) or "+NEWS_TIME+" >= date(?,?,?)"; String []args=new String[]{"now","start of month","now","start of day","+1 days"}; int result=database.update(TB_NAME,values,where,args); }其中 NEWS_READ为为表中已读未读标记字段,NEWS_TIME为表中时间字段,TB_NAME为该表的表名。
不过很遗憾之前参照的网址找不到了,不过类似的时间比较都能对照着实现功能。
本文分享了在Android项目中使用SQLite数据库处理时间比较的需求,包括删除前三个月消息和更新非当前月份消息状态为已读的方法,提供SQL语句示例,帮助开发者提升对数据库时间操作的理解。
1707

被折叠的 条评论
为什么被折叠?



