MySQL Delete Records Older Than X Minutes?

timestamp is a reserved keyword in mysql. To use timestamp as a field name, you have to put that in backticks as shown below.

`timestamp`

If time_created is a unix timestamp (int), you should be able to use something like this:

DELETE FROM adminLoginLog WHERE `timestamp` < (UNIX_TIMESTAMP() - 600);

(600 seconds = 10 minutes - obviously)

Otherwise (if time_created is mysql timestamp), you could try this:

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

Update 1

DELETE FROM adminLoginLog WHERE `timestamp` < DATE_SUB( CURRENT_TIME(), INTERVAL 10 MINUTE)

Update 2

DELETE FROM adminLoginLog WHERE `timestamp` < DATE_SUB( NOW(), INTERVAL 10 MINUTE)

Demo


Since TIMESTAMP() is a built-in function that returns the current time stamp, your query will never return any results.

Try wrapping the column in back ticks to let MySQL know you mean the column, not the reserved word:

DELETE FROM adminLoginLog WHERE `timestamp` < (NOW() - INTERVAL 10 MINUTE);

Tags:

Mysql

Sql

Php