Um ... Esto puede parecer tonto, pero cada registro de la tabla será mayor que ahora(), ya que ahora() se calcula en el momento en que se procesa la consulta Si desea eliminar un registro que sea anterior a otro registro, entonces no desea usar Now(), sino la marca de tiempo del registro al que está comparando el resto. O bien, si desea eliminar registros que son más antiguos que un punto específico en el tiempo, entonces necesita calcular la marca de tiempo que desea usar para comparar. Por ejemplo, para eliminar los registros de más de 10 minutos, se puede usar esto:
DELETE FROM events WHERE timestamp < (NOW() - INTERVAL 10 MINUTE)
O, para borrar los registros que tienen más de un día de edad:
DELETE FROM events WHERE timestamp < (NOW() - INTERVAL 1 DAY)
para puntos específicos en el tiempo (por ejemplo, octubre 12 de 2012 a las 4:15:00 PM GMT), hay un método para hacerlo, pero la sintaxis se me escapa, en este momento. ¿Dónde está mi manual de MySQL? :)
Gracias por la rápida respuesta, pero que no está funcionando ! Está eliminando todos los registros aunque la marca de tiempo no sea anterior a la fecha/hora actual – Arihant
por "anterior" significa que la marca de tiempo es> que la hora actual? entonces tienes que convertir la declaración en timestamp> NOW() –