我现在有点麻烦。我要实现的系统是一个“回调”系统,该系统将针对将在指定日期在系统上弹出的客户设置回调。

功能之一是重复发生的回调。这两个选项是每月和每年。我的年度工作正常:

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,将其设置为montly,则日期为:


March 3rd 2013
April 1st 2013
May 1st 2013
May 31st 2013
June 30th 2013


等等。有人处理过吗?

最佳答案

我会考虑使用间隔,例如

。 。 。
    (DATE_ADD(NOW(),间隔1个月))
。 。 。

另请参见this帖子。

或者-您可以尝试(伪代码)

now() - pre_saved_date % 30 (module of 30)


对于%-使用MOD功能,例如

select MOD(2, 3);
select 3 % 2;

关于mysql - MySQL中的每月日期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15760709/

10-13 00:48