2012-04-17 28 views

cevap

8
delete from events where timestamp < NOW() 

yeterli olmalı.

+0

Teşekkür ama bu çalışmıyor ! Zaman damgası, şimdiki zaman/tarihe göre – Arihant

+0

"eski" den daha eski olmamasına rağmen, tüm kayıtların silinmesi bu zaman damgasının> geçerli zamandan daha uzun olduğunu mu kastediyorsunuz? daha sonra ifadeyi zaman damgasına çevirmelisiniz> ŞİMDİ() –

1
DELETE FROM events WHERE timestamp < UNIX_TIMESTAMP(NOW()) 

veya standart bir datetime ise

DELETE FROM events WHERE timestamp < NOW() 
+0

Hızlı yanıt için teşekkürler, ancak çalışmıyor! Zaman damgası geçerli saat/tarih değerinden daha eski olmamasına rağmen tüm kayıtları siliyor – Arihant

+0

Silmeyi belirli bir zaman damgasına dönüştürün. Sonuç kümesinde olmaması gereken birkaç zaman damgası değeri gösterebilir misiniz? Ayrıca ŞİMDİ SEÇ(). –

21

Um ... (Bu saçma görünebilir, ama tablodaki her kayıt Şimdi bu yana, Şimdi() daha eski olacaktır) hesaplanır sorgu işlendiği zaman. Başka bir kayıttan daha eski bir kaydı silmek isterseniz, Now() işlevini kullanmak istemezsiniz, ancak kayıttaki zaman damgasını diğerleriyle karşılaştırırsınız. Veya, zaman içinde belirli bir noktadan daha eski kayıtları silmek istiyorsanız, o zaman karşılaştırmak için kullanmak istediğiniz zaman damgasını hesaplamanız gerekir. zaman içinde belirli noktalarda için

DELETE FROM events WHERE timestamp < (NOW() - INTERVAL 1 DAY) 

(örn Ekim: Eski bir günde bitti kayıtları silmek için,

DELETE FROM events WHERE timestamp < (NOW() - INTERVAL 10 MINUTE) 

Veya: Örneğin, kayıtları daha eski 10 dakika silmek için, bunu kullanabilirsiniz 12th, 2012, 04:15:00 GMT), bunu yapmak için bir yöntem var, ama sözdizimi şu an kaçıyor. MySQL kılavuzum nerede? :)

+2

Sayısal bir PHP zaman damgası kullandıysanız, bu fazladan fonksiyona ihtiyacınız var 'UNIX_TIMESTAMP (NOW() - INTERVAL 1 YEAR); –

-3
DELETE FROM table WHERE date < '2011-09-21 08:21:22'; 
1

Hazırda (hql) kayıtları daha eski 7 gün

Emin değilim Sil, ancak bu deneyin: bu hızlı cevap için

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); 
    }