mysql - 从 MYSQL 中删除超过 X 天的数据,Unix 时间以毫秒为单位
问题描述
我想从我的数据库中的特定表中删除时间戳超过 180 天的所有行。
我试过这个:
DELETE FROM on_search
WHERE time < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY));
但时间是 13 位 unix 格式,如 1543821263977
解决方案
UNIX_TIMESTAMP(NOW())
以秒为单位返回时间。
您必须将其乘以 1000 才能使其变为 13 位(以毫秒为单位的时间)。
DELETE FROM on_search
WHERE time < UNIX_TIMESTAMP(DATE_SUB(NOW(3), INTERVAL 30 DAY))*1000;
推荐阅读
- laravel - 如何使用 axios vuejs 下载 excel 文件
- python - Python - 任何列表中非负整数的平均值
- postman - 将 informatica 文档转换为 REST API 调用(邮递员)
- python - 使用 Selenium/Python 查找元素时遇到问题
- shell - 将文件的特定列写入另一个文件,谁能给我一个更简洁的解决方案?
- html - HTA - 验证条目
- java - 尝试覆盖方法时发生名称冲突
- r - 为 Mac arm64 安装 Torch for R 时出现问题
- flutter - 如何补间动画文本?从不透明度 =1 到 0 再回到 1
- javascript - 当传递给 JSON.Stringfy() 的对象具有 toJSON() 方法时,过滤器函数如何工作?