Você não pode simplesmente usar isso?
SELECT `date` FROM staff WHERE `date` < NOW() ORDER BY `date`
ou (se você precisar apenas de datas diferentes)
SELECT DISTINCT `date` FROM staff WHERE `date` < NOW() ORDER BY `date`
SELECT `date` FROM staff WHERE `date` < NOW() ORDER BY `date`
SELECT DISTINCT `date` FROM staff WHERE `date` < NOW() ORDER BY `date`