Seu código tenta usar uma variável de ligação para substituir uma palavra-chave SQL, bem como um número. Você não pode fazer isso™.
Quando resolvi esse problema, traduzi meus intervalos de tempo para segundos e usei
CURDATE() - INTERVAL :seconds SECONDS
A propósito, CURDATE() dá a você meia-noite hoje. Você pode querer NOW() se estiver lidando com intervalos de sub-dias.