Sqlite数据库对时间进行比较SQL语句
2016-10-13 14:53
218 查看
开发工作,在于不断积累,总结经验,持续学习。
最近项目中有这样的需求:
1、删除当前月份前三个月消息(如本月是10月删除7、8、9三个月的消息只保存本月消息)。
2、更新非本月消息为已读消息(如本月为10月,1为已读状态,0为未读状态,10月的所有消息状态不变,非本月消息状态都为1)。
由于之前对数据库中对时间的操作比较少,所以很生疏,也是找了很多网络资源才实现了功能,也学到了很多,接下来分享给大家,希望对大家有所帮助。
第一个需求我的解决方法是:
其中NEWS_TIME为表中要比较的时间字段,TB_NAME为该表的表名。
第二个需求我的解决方法是:
其中 NEWS_READ为为表中已读未读标记字段,NEWS_TIME为表中时间字段,TB_NAME为该表的表名。
不过很遗憾之前参照的网址找不到了,不过类似的时间比较都能对照着实现功能。
最近项目中有这样的需求:
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为该表的表名。
不过很遗憾之前参照的网址找不到了,不过类似的时间比较都能对照着实现功能。
相关文章推荐
- mysql中sql语句进行时间比较
- Oracle 在SQL语句中如何获取系统当前时间并进行操作
- access与SqlServer 之时间与日期及其它SQL语句比较
- 时间比较的SQL语句片段
- 比较两条SQL语句运行时间
- access和SqlServer 关于时间的SQL语句比较
- SQL比较时间查询语句
- SQL 基本函数 时间比较 常用语句
- oracle SQL语句中进行时间加减
- SQL语句比较时间注意点。access与MSSQL差别
- 与时间相关的SQL语句/sql获取当前时间/sql时间比较/sql时间格式化
- access与SqlServer 之时间与日期及其它SQL语句比较
- SQLServer中监视sql执行的时间,比较sql语句的效率
- Linq 两个时间比较/LINQ to SQL语句之Null语义和String/DateTime方法
- 知识积累之怎样在SQL语句中比较两个字符串类型时间
- mysql中sql语句进行日期比较
- SQLServer中监视sql执行的时间,比较sql语句的效率
- ASP比较时间的SQL语句ACCESS查询中怎么写日期比较的SQL语句
- sql 时间比较 查询语句
- SQL语句比较时间注意点。access与MSSQL差别