należy porównać datę z datą, a nie datę z datą i godziną
AND DATE(start_date) <= '2017-08-28'
AND DATE(end_date) >= '2017-08-28'
więc
SELECT id AS couponID, percentage_off, usage_count, used_count
FROM coupons
WHERE `code` = 'DANGER'
AND active_status = '1'
AND deleted = '0'
AND DATE(start_date) <= '2017-08-28'
AND DATE(end_date) >= '2017-08-28'
AND category LIKE '%cLevel%'
w przypadku, gdy używasz var w php i powinieneś poprawnie przekonwertować za pomocą str_to_date, np.:
str_to_date( '$now'),'%Y-%m-%d');
SELECT id AS couponID, percentage_off, usage_count, used_count
FROM coupons
WHERE `code` = 'DANGER'
AND active_status = '1'
AND deleted = '0'
AND DATE(start_date) <= str_to_date( '$now'),'%Y-%m-%d')
AND DATE(end_date) >= str_to_date( '$now'),'%Y-%m-%d')
AND category LIKE '%cLevel%'
lub używany przez OP
str_to_date( '$now'),'%Y-%m-%d %H:%i:%s');
SELECT id AS couponID, percentage_off, usage_count, used_count
FROM coupons
WHERE `code` = 'DANGER'
AND active_status = '1'
AND deleted = '0'
AND start_date <= DATE_FORMAT('$now','%Y-%m-%d %H:%i:%s')
AND end_date >= DATE_FORMAT('$now','%Y-%m-%d %H:%i:%s')
AND category LIKE '%cLevel%'