我有一个表(在SQL Server 2008 R2中,如果很重要),使用以下行定义。 DateAdded
列是SmallDateTime
数据类型。
ID DateAdded
1 2012-08-01 12:34:02
2 2012-08-01 12:48:25
3 2012-08-05 08:50:22
4 2012-08-05 11:32:01
5 2012-08-26 09:22:15
6 2012-08-26 13:42:02
7 2012-08-27 08:22:12
我需要做的是计算在相同的YYYY / MM / DD值上出现的行。所以我需要获得的结果看起来像这样......
DateAdded QTY
2012-08-01 2
2012-08-05 2
2012-08-26 2
2012-08-27 1
我无法弄清楚语法/表达式以使其工作。有人能指出我正确的方向吗?谢谢!
答案 0 :(得分:5)
SELECT
DateAdded = DATEADD(DAY, DATEDIFF(DAY, 0, DateAdded), 0),
QTY = COUNT(*)
FROM dbo.tablename
GROUP BY DATEADD(DAY, DATEDIFF(DAY, 0, DateAdded), 0);
或者正如Marc正确地指出的那样(我花了更多的时间来查看格式化的栓子而不是标签):
SELECT
DateAdded = CONVERT(DATE, DateAdded),
QTY = COUNT(*)
FROM dbo.tablename
GROUP BY CONVERT(DATE, DateAdded);