2012-03-21 33 views
1

在SQLExpress中,我有一个包含datetime-column的表。它的格式是这样的:sql得到月份的计数

19.03.2012 00:00:00 

现在,那里有很多的日期,我想建立一个WPFChart,那就说明我,多日期是如何在三月,四月等等。 我如何在sql中管理这一点,我得到一个月的计数?

回答

4

用途:

select month(dateColumn), count(*) 
from table 
group by month(dateColumn) 
+3

你不能'选择dateColumn,count(*)',你需要'select month(dateColumn),count(*)'。此外,这个答案应该建议OP将2011年1月和2012年1月合并成一个记录。 – MatBailie 2012-03-21 10:39:36

+0

@Dems,谢谢,修正。 – 2012-03-21 10:40:37

2

你可以用Month()函数提取一个日期的月份。 不是通过简单的小组,你得到的计数每个月

+0

你是对的,我基于这样的假设,当我做这种报告时,我通常会得到特定年份的月份。 – Iridio 2012-03-21 10:46:55

1

要获得只有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)