Ska*_*inz 1 t-sql sql-server-2008-r2
我有一个表(在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
Run Code Online (Sandbox Code Playgroud)
我需要做的是计算在相同的YYYY/MM/DD值上出现的行.所以我需要获得的结果看起来像这样......
DateAdded QTY
2012-08-01 2
2012-08-05 2
2012-08-26 2
2012-08-27 1
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚语法/表达式以使其工作.有人能指出我正确的方向吗?谢谢!
SELECT
DateAdded = DATEADD(DAY, DATEDIFF(DAY, 0, DateAdded), 0),
QTY = COUNT(*)
FROM dbo.tablename
GROUP BY DATEADD(DAY, DATEDIFF(DAY, 0, DateAdded), 0);
Run Code Online (Sandbox Code Playgroud)
或者正如Marc正确地指出的那样(我花了更多的时间来查看格式化的栓子而不是标签):
SELECT
DateAdded = CONVERT(DATE, DateAdded),
QTY = COUNT(*)
FROM dbo.tablename
GROUP BY CONVERT(DATE, DateAdded);
Run Code Online (Sandbox Code Playgroud)