您的位置:首页 > 数据库

Sqlite数据库对时间进行比较SQL语句

2016-10-13 14:53 218 查看
开发工作,在于不断积累,总结经验,持续学习。

最近项目中有这样的需求:

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",
88a1
"now","start of day","+1 days"};
int result=database.update(TB_NAME,values,where,args);
}

其中 NEWS_READ为为表中已读未读标记字段,NEWS_TIME为表中时间字段,TB_NAME为该表的表名。

不过很遗憾之前参照的网址找不到了,不过类似的时间比较都能对照着实现功能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: