ユーザーのリストを毎月メールで送信するcronジョブがあります。cronは毎日実行され、usersテーブルでsignup_dateを検索します。アイデアは、ユーザーがサインアップしてから1か月後にメールを送信し、アカウントの存続期間中これを継続することです。私はこのようなことをすることを考えていました:
SELECT *
FROM users
WHERE DAYOFMONTH(signup_date) = DAYOFMONTH(now());
問題は、31日にサインアップするユーザーを隔月で見逃すことです(うるう年の2月の問題は言うまでもありません)。すべてのユーザーが毎日実行されるときに少なくとも月に1回選択されることを保証するSQLステートメントはありますか?DBに余分なフィールド(date_last_emailedなど)を作成したくありません。