我需要一个查询语句,能够删除数据库表中时间戳早于当前日期或当前时间戳的所有行。
希望您能尽快提供帮助!
这是我正在使用的查询语句,但它并不能正常工作:
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 GMT),有一种方法可以实现,但是我目前想不起来语法了。我的MySQL手册在哪里?:)
UNIX_TIMESTAMP(NOW() - INTERVAL 1 YEAR);
。 - PJ Brunetdelete 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';