Выборка данных за определенный период очень частая задача, которая решается крайне просто. Среди множества вариантов решения в сети меня лично прильщает или использование INTERVAL или применение следующих методов.
За сегодня
SELECT * FROM TABLE WHERE tc_date >= CURDATE()
За вчера
SELECT * FROM TABLE WHERE tc_date >= (CURDATE()-1) AND tc_date < CURDATE()
За неделю
SELECT * FROM TABLE WHERE tc_date >= DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY)
За месяц (За 30 дней)
SELECT * FROM TABLE WHERE tc_date >= DATE_SUB(CURRENT_DATE, INTERVAL 30 DAY)