【发布时间】:2012-01-11 17:16:59
【问题描述】:
我有以下查询:
$data = mysql_fetch_array(mysql_query("SELECT
c.`id` AS cid,
p.`id` AS pid,p.`email`
FROM `coupons` AS c
LEFT JOIN `coupons_partners` AS cp ON cp.`cid` = c.`id`
LEFT JOIN `partners` AS p ON p.`id` = cp.`pid`
LEFT JOIN `bills` AS b ON b.`pid` = p.`id`
WHERE
(
CURRENT_DATE() BETWEEN c.`expires` AND ADDDATE(c.`expires`, INTERVAL 1 MONTH)
)
OR
(
CURRENT_DATE() NOT BETWEEN c.`expires` AND ADDDATE(c.`expires`, INTERVAL 1 MONTH)
AND
CURRENT_DATE() BETWEEN b.`date` AND ADDDATE(b.`date`, INTERVAL 1 MONTH)
)
ORDER BY b.`id` DESC"));
有点乱。我想做一个 cronjob 并自动创建账单。它们只能在优惠券到期 1 个月后创建(c.expires 是 DATETIME)或者如果最后一张账单(b.date)是在 1 个月前创建的。
问题是,如果优惠券尚未开始,我不想创建任何账单。这是可能的,因为我创建的优惠券可能会在 3 个月后开始使用。所以我猜“Between-Solution”不适合这里?
我正在努力解决问题,但现在我将不胜感激。
如果有人可以帮助我,我会很高兴和感激。
最好的问候,
亚历克斯
【问题讨论】:
标签: mysql datetime date intervals