2011-01-25 55 views
3

我有以下查詢MySQL查詢問題,在日期<

SELECT *, count(jx_commissions.commission_amount) AS summe 
FROM jx_members 
INNER JOIN jx_commissions ON jx_commissions.mid = jx_members.mid 
WHERE jx_commissions.date > '2011-01-01' 
GROUP BY jx_commissions.mid 
ORDER BY summe DESC 
LIMIT 1, 20 

場日期有一個日期格式,所有日期有正確的格式年月日

,但如果我用這個查詢我沒有得到任何結果...如果我將日期更改爲另一個,我得到錯誤的結果...我認爲他比較了一個字符串...但我怎麼能搜索一個日期?

enter image description here

enter image description here

+0

看起來不錯 - 如果`date`是日期字段,這會做一個日期比較。你能證明你得到了什麼樣的錯誤結果嗎? – 2011-01-25 22:53:04

+0

如果我使用日期從2010-09-01我也從2010-08-xx reuslt也可能更低... – 2011-01-25 23:09:54

+0

問題是限制1,20 ...我只有一個結果..所以我必須使用0,20 ... – 2011-01-28 15:23:51

回答

2

如果jx_commissions.date是日期字段你可以做一個有條件像jx_commissions.date > DATE('2011-01-01')

0

嘗試使用STR_TO_DATE函數列轉換爲真正的日期。

SELECT *, count(jx_commissions.commission_amount) AS summe 
FROM jx_members 
INNER JOIN jx_commissions ON jx_commissions.mid = jx_members.mid 
WHERE STR_TO_DATE(jx_commissions.date, '%Y-%m-%d') > '2011-01-01' 
GROUP BY jx_commissions.mid 
ORDER BY summe DESC 
LIMIT 1, 20