android数据库表删除语句,Android Sqlite数据库查询或删除N天前数据

最近这几天项目用到好久不写SQL语句了,有些都忘了,新需求是定时删除数据,以防数据太多.

刚开始写的时候也是各种碰钉子,遇到了各种问题,也在网上找了一些操作语句,但是有些早我这里不能用,然后我就开始自己想啊

f74cdc1680e63b4526fe5aa1e19d548a.png

这些是在网上找的,基本全是删除用的

// String a="DELETE FROM Student WHERE time('now', '-7 day') >= date(CreatedTime)";

// String b="DELETE FROM Student WHERE time('now', '-2 hours') >= date(CreatedTime)";

// String c="delete from Student where (TO_DAYS(NOW()) - TO_DAYS(time))>=7";

// String d="delete from Student WHERE TO_DAYS(NOW()) - TO_DAYS(time) <= 7";

// String f="DELETE FROM Student WHERE EVENT_TIME IS NULL OR DATE(EVENT_TIME) <= DATE(DATE_SUB(NOW(),INTERVAL 7 DAY))";

// String e="DELETE FROM Student where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(time);";

// String g="DELETE FROM Student where TO_DAYS(NOW())-TO_DAYS(time)>1;";

// String h="DELETE FROM Student WHERE date('now', '-7 day') >= date(time);";

// String i="DELETE FROM Student WHERE julianday('now') - julianday(time) >= 7;";

可能在别的数据库里面可以用到吧

废话也不多说了直接上代码了

查询语句:

select * from 表名where 字段名>='2017-06-01' and 字段<='2017-06-05';

删除语句:

DELETE FROM 表名 WHERE 时间的字段名

为什么最后面的时间那样写呢,因为我时间格式化为 yyyy-MM-dd HH:mm:ss这样的

删除N天前的

DELETE FROM 表名 WHERE 时间的字段名

getOldDate这个方法是获取N天前的日期

public static String getOldDate(int distanceDay) {

SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date beginDate = new Date();

Calendar date = Calendar.getInstance();

date.setTime(beginDate);

date.set(Calendar.DATE, date.get(Calendar.DATE) - distanceDay); //加号为N天前

// date.set(Calendar.DATE, date.get(Calendar.DATE) + distanceDay); //加号为N天后

Date endDate = null;

try {

endDate = dft.parse(dft.format(date.getTime()));

} catch (ParseException e) {

e.printStackTrace();

}

return dft.format(endDate);

}

最后还是问了一位大佬,他给了我灵感,然后写出来了当时的心情啊

3071122c732a092f58564a68d478d43c.png

甚至还有点想

26dbd9b76f5decc5589e19740b660b95.png

如果这些东西对大家有用处点个赞呗

ed3427738599d4a35b392121726479ee.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值