interesting that you should make a distinction between "works" and "correct"
very often an SQL query will "work" (i.e. not produce a syntax error) but give the wrong answer
me personally, i prefer to do it this way --
... WHERE datecolumn > CURRENT_DATE - INTERVAL '7' DAY
the syntax used here is not specific to mysql (whereas DATE_ADD, DATE_SUB, and NOW are all proprietary mysql syntax)
furthermore, as i said earlier, i'd use CURRENT_DATE instead of CURRENT_TIMESTAMP (which is the standard SQL equivalent for the NOW function) because this will return results that are likely more correct