1

我有一个表(在 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

我无法弄清楚让它工作的语法/表达式。有人可以指出我正确的方向吗?谢谢!

4

1 回答 1

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);
于 2012-08-28T15:53:29.840 回答