Android Sqlite数据库查询或删除N天前数据

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

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

在这里插入图片描述
这些是在网上找的,基本全是删除用的

//                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 时间的字段名 <'2019-04-11 14:45:00';

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

删除N天前的

DELETE FROM 表名  WHERE   时间的字段名 <' "+getOldDate(N)+" ';

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);
    }

最后还是问了一位大佬,他给了我灵感,然后写出来了当时的心情啊
在这里插入图片描述
甚至还有点想
在这里插入图片描述
如果这些东西对大家有用处点个赞呗
在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值