簡単な部分: 同じ日と月の任意の日付を検索するには:
SELECT .... FROM .... WHERE
month(timefield)=month('2012-12-02 23:59:59')
and day(timefield) = day('2012-12-02 23:59:59)
面倒な方法ですが、(ほとんどの場合) うまくいくのは、
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
等々...
次に、問題が発生します。閏年とは何ですか...それに対する良い解決策はありません...たとえば、シード日が2012年3月5日である場合、2012年2月28日にしか戻りません。しかし、データを2011年2月27日に戻したいと思います...それに対する1つの可能な解決策は、日付を常にうるう年に正規化し、8日前の日付を取得し、不要なものを捨てることですフロントエンド。