场景

数据库中有某些数据中存储了时间戳(秒),需要根据这个时间去清理几天前的数据,比如说5天前,假设当前是1月5号,我们要清除的1月1号0点前的数据

获取当前的日期

SELECT CURRENT_DATE;

获取几天前

这个可以使用日期增减函数实现

SELECT DATE_ADD(CURRENT_DATE,INTERVAL -5 DAY);

这样得到了5天前的时间

然后我们需要做的就是将其转换为秒

SELECT UNIX_TIMESTAMP(DATE_ADD(CURRENT_DATE,INTERVAL -5 DAY));

最终实现

然后再以这个时间为标准去删除数据即可,下面的表是我业务中的数据

DELETE FROM kline_3m WHERE open_time <= UNIX_TIMESTAMP(DATE_ADD(CURRENT_DATE,INTERVAL -5 DAY));
DELETE FROM kline_5m WHERE open_time <= UNIX_TIMESTAMP(DATE_ADD(CURRENT_DATE,INTERVAL -5 DAY));
DELETE FROM kline_15m WHERE open_time <= UNIX_TIMESTAMP(DATE_ADD(CURRENT_DATE,INTERVAL -10 DAY));
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐