我目前有点麻烦。我正在尝试实施的系统是一个“回调”系统,它将针对将在指定日期弹出系统的客户设置回调。
其中一项功能是重复发生的回调。这两个选项是每月和每年。我的年度工作正常:
SELECT * FROM `callbacks` WHERE (
-- Yearly Callbacks
(DAYOFYEAR(`date_callback`) = DAYOFYEAR(NOW()) AND `occurs` = 'yearly') OR
-- Other Callbacks For Today
(DATE(`date_callback`) = DATE(NOW())))
但是我无法想象如何检查每月的回调是否到期。它应该只在列表中每 30 天出现一次(使用上述查询。)我正在使用DAYOFMONTH
,但我意识到如果31st
为每月回调。
因此,如果设置了一个March 3rd 2013
并设置为 montly,则它应该出现在查询结果中,如果日期是:
March 3rd 2013
April 1st 2013
May 1st 2013
May 31st 2013
June 30th 2013
等等。以前有没有人处理过这个问题?