2014-04-30 52 views
0

我試圖建立一個查詢,給我一個月份字段而不是數字的月份字段。輸出應該與此類似:如何獲取月份名稱過期字段

Year/month field | Sum field 
Januari 2014   100 
Februari 2014  12300 
Maart 2014   3234 
April 2014   4964 

我搜索來獲取月份名稱的方式,但我必須做一些錯誤的,因爲我不斷地得到錯誤DATENAME不是一個函數或SQL錯誤1064.這我我試過:

SELECT id, 
     YEAR(report_date) AS YEAR, 
     MONTH(report_date) AS MONTH, 
SELECT DATENAME(MONTH, (MONTH(report_date))) , 
CONVERT(VARCHAR(3), DATENAME(MONTH, report_date)) SUM(num) AS participants_month 
FROM participants 
WHERE unit_id = 10 
GROUP BY unit_id, 
    MONTH(report_date) 
ORDER BY report_date ASC; 

試圖使這個問題儘可能清晰。如果有什麼不清楚的話告訴我,我會盡力解釋它。真的希望有人能指出我正確的方向。

+0

你使用哪個數據庫? – Guneli

+0

db是儀表板 – user3398922

+0

你使用什麼數據庫系統? MYSQL? SQL Server? – mareckmareck

回答

2

在SQL Server中使用DATENAME(月,日): SQL Server Fiddle

但在MySQL中使用MONTHNAME(日期): MySQL Fiddle

從錯誤您收到我猜你不使用SQL Server作爲你的數據庫管理系統,所以在MySQL中你應該使用MONTHNAME(date)

+0

非常感謝。 MONTHNAME(日期)做到了。 – user3398922

0

從錯誤,我想,你正在使用MySQL.But DATENAME()是Transact-SQL函數。

在MySQL中,你可以使用

MONTH(yourdate) 

代替

+0

如我的示例所示,我目前使用該格式獲取月份編號。它不顯示月份名稱。 – user3398922

+0

MONTH在MySQL中返回月份編號,而不是名稱。 http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_month – mareckmareck