根据时间戳删除超过24小时或1天的记录

iyfjxgzm  于 2021-06-20  发布在  Mysql
关注(0)|答案(4)|浏览(538)

我正在尝试编写mysql查询来删除超过24小时的记录。
下面是我使用的selectsql语句

SELECT * FROM Request WHERE 
timeStamp <= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 DAY))

表包含许多早于1天的记录,但此sql查询的结果为空。它也不会显示任何错误消息。
时间戳字段结构无效

Name: timeSatamp
Type: timestamp 
Default: CURRENT_TIMESTAMP

有人能帮我找出这句话中的错误吗?
提前谢谢!

vwhgwdsa

vwhgwdsa1#

您可以使用datediff,而不是从两个日期进行比较。

SELECT * FROM Request WHERE DATEDIFF(timestamp, NOW())>=1;

datediff返回两个日期/时间戳之间的天数。
https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_datediff

8e2ybdfx

8e2ybdfx2#

你不需要 FROM_UNIXTIME() 所以这会满足你的要求

SELECT * FROM `ts` WHERE timeStamp <= DATE_SUB(NOW(), INTERVAL 1 DAY)
zpf6vheq

zpf6vheq3#

您的查询应如下所示:

SELECT * from Request where FROM_UNIXTIME(timeStamp) <= (NOW() - INTERVAL 1 DAY);
pgvzfuti

pgvzfuti4#

如果字段时间戳包含10位数字(如“156683636368”),则正确答案为

SELECT * from Request where FROM_UNIXTIME(timeStamp) <= (NOW() - INTERVAL 1 DAY);

就像之前@akshaypjoshi建议的那样

相关问题