我正在寻找一个能够从数据库中的表中删除所有行的查询,其中时间戳早于当前日期/时间或当前时间戳。
非常感谢您在这里紧急提供一些帮助!
这是我正在使用的查询,但我认为它不起作用:
delete from events where timestamp<CURRENT_TIMESTAMP{);
我正在寻找一个能够从数据库中的表中删除所有行的查询,其中时间戳早于当前日期/时间或当前时间戳。
非常感谢您在这里紧急提供一些帮助!
这是我正在使用的查询,但我认为它不起作用:
delete from events where timestamp<CURRENT_TIMESTAMP{);
嗯...这可能看起来很愚蠢,但表中的每条记录都将比 Now() 更早,因为 Now() 是在处理查询时计算的。如果您想删除比另一条记录更早的记录,那么您不想使用 Now(),而是要使用与其余记录进行比较的记录中的时间戳。或者,如果要删除早于特定时间点的记录,则需要计算要用于比较的时间戳。例如,要删除超过 10 分钟的记录,您可以使用以下命令:
DELETE FROM events WHERE timestamp < (NOW() - INTERVAL 10 MINUTE)
或者,对于删除超过一天的记录:
DELETE FROM events WHERE timestamp < (NOW() - INTERVAL 1 DAY)
对于特定的时间点(例如,格林威治标准时间 2012 年 10 月 12 日下午 4:15:00),有一种方法可以做到这一点,但语法现在让我无法理解。我的 MySQL 手册在哪里?:)
delete from events where timestamp < NOW()
应该足够了。
DELETE FROM events WHERE timestamp < UNIX_TIMESTAMP(NOW())
或者如果它是标准日期时间
DELETE FROM events WHERE timestamp < NOW()
Hibernate (hql) 删除超过 7 天的记录
我不确定,但你可以试试这个:
String hqlQuery = "from PasswordHistory pwh "
+ "where pwh.created_date < datediff(curdate(), INTERVAL 7 DAY)";
List<Long> userList = (List<Long>)find(hqlQuery);
deleteAll(userList );// from baseDao
public void deleteAll(Collection list) {
getHibernateTemplate().deleteAll(list);
}
DELETE FROM table WHERE date < '2011-09-21 08:21:22';