在SQLExpress中,我有一个包含datetime-column的表。它的格式是这样的:sql得到月份的计数
19.03.2012 00:00:00
现在,那里有很多的日期,我想建立一个WPFChart,那就说明我,多日期是如何在三月,四月等等。 我如何在sql中管理这一点,我得到一个月的计数?
在SQLExpress中,我有一个包含datetime-column的表。它的格式是这样的:sql得到月份的计数
19.03.2012 00:00:00
现在,那里有很多的日期,我想建立一个WPFChart,那就说明我,多日期是如何在三月,四月等等。 我如何在sql中管理这一点,我得到一个月的计数?
用途:
select month(dateColumn), count(*)
from table
group by month(dateColumn)
要获得只有1个月...
SELECT
COUNT(*),
SUM(valueColumn)
FROM
yourTable
WHERE
dateColumn >= '20120101'
AND dateColumn < '20120201'
为了让多个月,但按月份(和年份)分组。
SELECT
DATEADD(MONTH, DATEDIFF(MONTH, 0, dateColumn), 0),
COUNT(*),
SUM(valueColumn)
FROM
yourTable
WHERE
dateColumn >= '20110301'
AND dateColumn < '20120301'
GROUP BY
DATEADD(MONTH, DATEDIFF(MONTH, 0, dateColumn), 0)
你不能'选择dateColumn,count(*)',你需要'select month(dateColumn),count(*)'。此外,这个答案应该建议OP将2011年1月和2012年1月合并成一个记录。 – MatBailie 2012-03-21 10:39:36
@Dems,谢谢,修正。 – 2012-03-21 10:40:37