時限イベントをデータベースに保存しました。これらのイベントは、年次、四半期ごと、月次、週次、および毎日です。そこで、イベントのタイプを格納するテーブルを追加しました。
ここで、今日実行する必要があるイベントのみを選択したいと思います。そのため、イベントの開始日を選択し、時刻 (YEAR、QUARTER など) を追加して、その日付が今日の日付かどうかを確認します。
これは where ステートメントになります。
WHERE (
DATEDIFF(NOW(),
DATE_ADD(
IFNULL(
timer.last_trigger,
timer.start_date
),
INTERVAL 1 timer.period_type
)
)
) = 0
クエリは、次の箇所で中断されます。
INTERVAL 1 timer.period_type
それは次のようなものでなければならないからです:
INTERVAL 1 YEAR
timer.period_type
したがって、値'YEAR'
を含む「変数」を定義済みの mysql varに変換したいと考えていますYEAR
。また、QUARTER、MONTH、WEEK、DAY の場合も同様です。
これを行う方法はありますか、または回避策はありますか? の列タイプを変更することは可能timer.period_type
でしょうか?PHP でデータのループを防止したい。