我有以下查詢:如何檢查當前日期和其他日期是否超過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