谷姐:我们都是谷歌迷
We are all Google fans

MJJ帮忙写一句mysql删除语句。-lers

Rate this post

表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秒之前的数据。

申明:本文内容由网友收集分享,仅供学习参考使用。如文中内容侵犯到您的利益,请在文章下方留言,本站会第一时间进行处理。

未经谷姐允许不得转载:谷姐靓号网 » MJJ帮忙写一句mysql删除语句。-lers
分享到: 生成海报

热门文章

评论 抢沙发

评论前必须登录!

立即登录   注册

买Google Voice认准【谷姐靓号网】

Google Voice靓号列表Google Voice自助购买
切换注册

登录

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活