我正在寻找能够从数据库中的表中删除所有行的查询,其中时间戳早于当前日期/时间或当前时间戳.
非常感谢一些急需的帮助!
这是我正在使用的查询,但我认为它不起作用:
delete from events where timestamp<CURRENT_TIMESTAMP{);
Run Code Online (Sandbox Code Playgroud)
小智 24
嗯......这可能看起来很愚蠢,但表中的每条记录都会比Now()旧,因为Now()是在处理查询时计算的.如果要删除比其他记录旧的记录,则不希望使用Now(),而是使用记录中的时间戳来比较其余记录.或者,如果要删除早于特定时间点的记录,则需要计算要用于比较的时间戳.例如,要删除超过10分钟的记录,您可以使用:
DELETE FROM events WHERE timestamp < (NOW() - INTERVAL 10 MINUTE)
Run Code Online (Sandbox Code Playgroud)
或者,要删除超过一天的记录:
DELETE FROM events WHERE timestamp < (NOW() - INTERVAL 1 DAY)
Run Code Online (Sandbox Code Playgroud)
对于特定的时间点(例如,2012年10月12日格林尼治标准时间下午4:15:00),有一种方法可以做到这一点,但语法现在让我失望了.我的MySQL手册在哪里?:)