从mysql中删除x天以前的数据,unix时间以毫秒为单位

xienkqul  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(346)

我想从数据库中的特定表中删除时间戳早于180天的所有行。
我试过这个方法:

DELETE FROM on_search 
WHERE time < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY));

但是时间是13位的unix,比如1543821263977

nzk0hqpo

nzk0hqpo1#

UNIX_TIMESTAMP(NOW())

以秒为单位返回时间。
你必须将它乘以1000,使之成为13位数(时间单位为毫秒)。

DELETE FROM on_search 
WHERE time < UNIX_TIMESTAMP(DATE_SUB(NOW(3), INTERVAL 30 DAY))*1000;

相关问题