Je cherche une requête capable de supprimer toutes les lignes d'une table dans une base de données où l'horodatage est plus âgé que la date / heure actuelle ou l'horodatage actuel.
J'apprécierais vraiment une aide ici de toute urgence! p>
Voici la requête que j'utilise mais comme je pensais que cela ne fonctionne pas: p>
5 Réponses :
delete from events where timestamp < NOW() should be enough.
Merci pour la réponse rapide mais cela ne fonctionne pas! Sa suppression de tous les enregistrements même si l'horodatage n'est pas plus âgé que l'heure / la date actuelle
Par "plus âgé", vous vouliez dire que l'horodatage est> que l'heure actuelle? Ensuite, vous devez transformer la déclaration en horodatage> maintenant ()
DELETE FROM events WHERE timestamp < NOW()
Merci pour la réponse rapide mais cela ne fonctionne pas! Sa suppression de tous les enregistrements même si l'horodatage n'est pas plus âgé que l'heure / la date actuelle
Tournez la suppression en un horodatage SELECT. Pouvez-vous montrer quelques valeurs d'horodatage qui ne devraient pas être dans le résultat? Faites aussi un choix maintenant ().
euh ... cela peut sembler idiot, mais chaque enregistrement de la table sera plus vieux que maintenant (), depuis maintenant () est calculé au moment où la requête est traitée. Si vous souhaitez supprimer un enregistrement plus ancien qu'un autre enregistrement, vous ne voulez pas utiliser maintenant (), mais l'horodatage de l'enregistrement que vous comparez le reste à. Ou, si vous souhaitez supprimer des enregistrements plus âgés d'un point plus ancien qu'un point spécifique, vous devez calculer l'horodatage que vous souhaitez utiliser pour comparer. Par exemple, pour supprimer des enregistrements de plus de 10 minutes, vous pouvez utiliser ceci:
DELETE FROM events WHERE timestamp < (NOW() - INTERVAL 1 DAY)
Si vous avez utilisé un horodatage numérique PHP, vous avez besoin de cette fonction supplémentaire UNIX_TMESTAMP (maintenant () - Intervalle 1 an); Code>
DELETE FROM table WHERE date < '2011-09-21 08:21:22';
Hibernate (HQL) Supprimer des enregistrements de plus de 7 jours
Je ne suis pas sûr, mais vous pouvez essayer ceci: p>
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); }
Supprimer de TABLE_NAME Où TimeStamp <(Now (() - Intervalle 20 minutes)