我已将定时事件保存在数据库中。这些事件是每年,每季度,每月,每周和每天。所以我添加了一个表来存储它的事件类型。
现在我只想选择今天需要完成的事件。所以我想选择事件的开始日期,添加时间(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
。如果是季度、月、周或日,同样的事情。
有没有办法做到这一点,或者有解决方法吗?也许可以更改的列类型timer.period_type
?想要防止使用 PHP 循环遍历数据。