Можете да опитате да използвате това условие:
WHERE date < DATE_SUB(NOW(), INTERVAL 7 DAY)
Така че целият SQL скрипт изглежда така:
CREATE EVENT delete_event
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 DAY
ON COMPLETION PRESERVE
DO BEGIN
DELETE messages WHERE date < DATE_SUB(NOW(), INTERVAL 7 DAY);
END;
На твое място обаче бих решил дадения проблем с обикновен cron скрипт. Причините да направите това са прости:по-лесно е да поддържате кода, няма грозни SQL заобикалящи решения, интегрира се гладко с вашата система.