2016-07-24 97 views
3

我試圖按月計算添加的記錄數。下面的查詢工作正常如何使用mysqli在查詢內獲得按月份的月份名稱?

SELECT COUNT(*) AS count_by_month, MONTH(date_added) AS in_month 
FROM  `promotion` 
WHERE  YEAR(date_added) = '2016' 
GROUP BY MONTH(date_added) 

但上面的查詢的結果將返回月份數,我希望得到月份名稱,如JanFeb而不是數量。我試過下面的技巧,但它不起作用。

SELECT COUNT(*) AS count_by_month, 
    MONTH(date_added) AS in_month, MONTHNAME(STR_TO_DATE(in_month, '%m')); 
    FROM  `ws_promotion` 
    WHERE  YEAR(date_added) = '2016' 
    GROUP BY MONTH(date_added) 

任何人都可以指導我如何解決這個問題,我想感謝,如果有人指導我這一點。謝謝。

回答

2

試試這個:

SELECT  
    COUNT(*) AS count_by_month, 
    MONTH(date_added) AS in_month, 
    MONTHNAME(date_added) 
FROM  `ws_promotion` 
WHERE  YEAR(date_added) = '2016' 
GROUP BY MONTH(date_added) 

注:MONTHNAME(date)功能預計date作爲參數。

例子:

mysql> SELECT MONTHNAME('2009-05-18'); 
+-------------------------+ 
| MONTHNAME('2009-05-18') | 
+-------------------------+ 
| May      | 
+-------------------------+ 
1 row in set (0.02 sec) 

更多: 如果你想從數個月的名稱,那麼你可以使用STR_TO_DATE()將數字轉換爲日期,然後再回來MONTHNAME()

SELECT MONTHNAME(STR_TO_DATE(7, '%m')); 

+---------------------------------+ 
| MONTHNAME(STR_TO_DATE(7, '%m')) | 
+---------------------------------+ 
| July       | 
+---------------------------------+ 
+0

它爲我工作。謝謝 –

+0

不客氣:)。我已經更新了更多細節的答案。 – 1000111