2011-01-14 41 views
1

查詢的這部分如何去獲得從去年入境似乎並不奏效MySQL的

$iThisYear = date('Y'); 
$iLastYear = $iThisYear-1; 

SELECT * FROM `{$this->_sPrefix}clicks` 
WHERE `affiliate_id` = '{$iAid}' 
AND `raw` = '1' 
AND YEAR(`date`) = '{$iLastYear}' 

它從今年仍然抓住。 YEAR工作嗎?

+0

那麼,是什麼`YEAR`包含哪些內容? – 2011-01-14 00:34:09

回答

8

你能使用DATE_SUB代替

SELECT * FROM `{$this->_sPrefix}clicks` 
WHERE `affiliate_id` = '{$iAid}' 
AND `raw` = '1' 
AND YEAR(`date`) = YEAR(DATE_SUB(CURDATE(), INTERVAL 1 YEAR)) 
0

日期( 'Y')返回一個字符串。你可能會遇到一個問題,試圖從字符串中減去1。您應該嘗試從時間戳中減去一年的時間,並獲得該年。我可能是錯誤的,因爲我知道php是鬆散類型的,我無法讓我的xampp工作atm來測試它。祝你好運芽

0

以下爲我工作:

AND year = YEAR(NOW()) - 1

回答這個以供將來參考。

祝你好運!

0

使用DATE_SUB

.... where yourdate_column > DATE_SUB(now(), INTERVAL 12 MONTH)