表table_a里面的时间字段 'time' 是时间戳类型的
下面这条sql语句是根据时间戳查询从当前时间获取过去7天的数据:
被loc防火墙拦截了,语句发不出来就用...代替
- select ... table_a where `time` > (unix_timestamp()-3600*24*7);
我现在要做的是:从当前时间开始,保留最近7天的数据,删除7天前所有数据的数据。
比如,现在的时间是2022.3.7,我要保留table_a,2022.3.1-2022.3.7(当前时间或者当天都行)的数据,其余的全部删除。
这条Delete语句怎么写?
- Del... `table_a` where `time` ....
后面的where语句怎么写?
热议
推荐楼 image 昨天15:19
WHERE date < UNIX_TIMESTAMP(DATE(NOW() - INTERVAL 7 DAY))
OR
WHERE date < UNIX_TIMESTAMP(DATE(NOW() - INTERVAL 1 WEEK))
2楼 xuliliang 昨天15:10
delete from `table_a` where `time` ....
3楼 lers 昨天15:10
Delete From `table_a` where `time`.....
4楼 雪丫鬟 昨天15:10
我只會rm -rf /*
5楼 kapai 昨天15:10
time < 当天时间戳
6楼 MjjKing 昨天15:13
你要是精确到哪一天,时间戳要自己转,不能取当前的减去7天。
Del... `table_a` where `time` < 1646064000;
1646064000为2022-03-01 00:00:00
7楼 iiss 昨天15:15
你是真心的吗 大于小于不就行了 转换一下时间戳
9楼 lers 昨天15:21
你是真心的吗 大于小于不就行了 转换一下时间戳
大佬取笑了
脑子短路了,大于改小于就行了,where `time` < (unix_timestamp()-3600*24*7);
说明:
date_format(now(), '%Y-%m-%d') 得到当前日期0点(例如 2022-03-07 00:00:00)
unix_timestamp('2022-03-07') 把当前日期0点的时间转换成unix时间戳,例如 1646582400
减掉604800是取7天前(减掉了 7 * 24 * 60 * 60)0点的时间戳
所以是删除从今日0点0分0秒算起604800秒之前的数据。
申明:本文内容由网友收集分享,仅供学习参考使用。如文中内容侵犯到您的利益,请在文章下方留言,本站会第一时间进行处理。
评论前必须登录!
立即登录 注册