我有以下查询:如何检查当前日期和其他日期是否超过1个月前?
$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个月内开始的优惠券。所以我想“解决方案间”不适合这里?
我想弄明白它是否正确,但现在我会很感激任何帮助。
如果有人能帮助我,我会很高兴也很感激。
最好的问候,
亚历
我想'DATEDIFF(月,CURRENT_DATE(),c.expires)',但他不喜欢'CURRENT_DATE()'。你知道我应该把这个日期放在那里吗? – Vay 2012-01-11 17:47:25
我猜你不是指MySQL?因为就像在MySQL纪录片中一样,只允许两个表达式。所以我可以用'DATEDIFF(CURDATE(),c.expires)'得到这些日子,但不是一个月,输出为1。无论如何,这不是可能将其转换为MySQL月吗? – Vay 2012-01-11 21:45:30