我正在尝试构建一个查询,该查询为我提供了包含月份名称而不是数字的年份字段。输出应该类似于:
Year/month field | Sum field
Januari 2014 100
Februari 2014 12300
Maart 2014 3234
April 2014 4964
我已经搜索了获取月份名称的方法,但我必须做错了,因为我经常会收到datename不是函数或者错误1064的错误。这就是我所说的#39;我试过了:
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 :(得分:2)
在SQL Server中,您使用DATENAME(月,日): SQL Server Fiddle
但是在MySQL中你使用MONTHNAME(日期): MySQL Fiddle
从您收到的错误中我猜您不会将SQL Server用作数据库管理系统,因此在MySQL中您应该使用MONTHNAME(date)。
答案 1 :(得分:0)
从错误中,我想,你正在使用MySQL。但是DATENAME()是Transact-SQL函数。
在MySQL中,您可以使用
MONTH(yourdate)
代替