Можно хранить в поле метку UNIX time stamp. И при выборке из бд учитывать это значение.
SELECT * FROM products WHERE uts < :uts
Где :uts = time() - 7200, те самые 2 часа.
Тогда можно обойтись без CRON и планировщика MySQL, но придется заплатить дополнительным int полем в таблице.
Или можно добавить еще одну таблицу, в которой будет 2 поля: id товара и UNIX time stamp. Тогда в запрос нужно будет добавить JOIN.
SELECT p.* FROM products as p
LEFT JOIN rel_table as rt
ON rt.id = p.id
WHERE rt.uts IS NOT NULL AND rt.uts < :uts
Такой подход несколько более гибок.