场景
数据库中有某些数据中存储了时间戳(秒),需要根据这个时间去清理几天前的数据,比如说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));