The easy part: To find any date on the same day and month:
SELECT .... FROM .... WHERE
month(timefield)=month('2012-12-02 23:59:59')
and day(timefield) = day('2012-12-02 23:59:59)
A messy way of doing it, but it will (mostly) work is to do a
SELECT .... FROM .... WHERE
(month(timefield)=month('2012-12-02 23:59:59')
and day(timefield) = day('2012-12-02 23:59:59')) or
(month(timefield)=month(date_sub('2012-12-02 23:59:59' interval 1))
and day(timefield) = day(date_sub('2012-12-02 23:59:59') interval 1)) or
(month(timefield)=month(date_sub('2012-12-02 23:59:59' interval 2))
and day(timefield) = day(date_sub('2012-12-02 23:59:59') interval 2)) or
and so on...
Then the problem comes up: What with leap years... I do not have any good solutions for that... If e.g your seed date is 05-mar-2012, then you will only get back to 28-feb-2012, but I guess you want the data back to 27 feb 2011... One possible solution to that is to make sure that you always normalize the date to a leap year, fetch the days 8 days back and throws away what you do not want in the front end.